diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..1887a8a
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,79 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// 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.
+
+// Build the Phone app which includes the emergency dialer. See Contacts
+// for the 'other' dialer.
+
+android_app {
+    name: "TeleService",
+
+    libs: [
+        "telephony-common",
+        "voip-common",
+        "ims-common",
+        "libprotobuf-java-lite",
+        "unsupportedappusage",
+    ],
+
+    static_libs: [
+        "androidx.appcompat_appcompat",
+        "androidx.preference_preference",
+        "androidx.recyclerview_recyclerview",
+        "androidx.legacy_legacy-preference-v14",
+        "android-support-annotations",
+        "com.android.phone.common-lib",
+        "guava",
+        "PlatformProperties",
+    ],
+
+    srcs: [
+        ":framework-telephony-common-shared-srcs",
+        "src/**/*.java",
+        "sip/src/**/*.java",
+        "ecc/proto/**/*.proto",
+        "src/com/android/phone/EventLogTags.logtags",
+    ],
+
+    jarjar_rules: ":jarjar-rules-shared",
+
+    resource_dirs: [
+        "res",
+        "sip/res",
+    ],
+
+    asset_dirs: [
+        "assets",
+        "ecc/output",
+    ],
+
+    aaptflags: [
+        "--extra-packages com.android.services.telephony.sip",
+    ],
+
+    platform_apis: true,
+
+    certificate: "platform",
+    privileged: true,
+
+    optimize: {
+        proguard_flags_files: [
+            "proguard.flags",
+            "sip/proguard.flags",
+        ],
+    },
+
+    proto: {
+        type: "lite",
+    },
+}
diff --git a/Android.mk b/Android.mk
deleted file mode 100644
index 8aff191..0000000
--- a/Android.mk
+++ /dev/null
@@ -1,59 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-# Build the Phone app which includes the emergency dialer. See Contacts
-# for the 'other' dialer.
-include $(CLEAR_VARS)
-
-phone_common_dir := ../../apps/PhoneCommon
-
-src_dirs := src $(phone_common_dir)/src sip/src
-res_dirs := res $(phone_common_dir)/res sip/res
-asset_dirs := assets ecc/output
-
-LOCAL_JAVA_LIBRARIES := \
-        telephony-common \
-        voip-common \
-        ims-common \
-        org.apache.http.legacy \
-        libprotobuf-java-lite
-
-LOCAL_STATIC_ANDROID_LIBRARIES := \
-        androidx.appcompat_appcompat \
-        androidx.preference_preference \
-        androidx.recyclerview_recyclerview \
-        androidx.legacy_legacy-preference-v14
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
-        guava \
-        volley \
-        android-support-annotations
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_SRC_FILES += $(call all-proto-files-under, ecc/proto)
-LOCAL_SRC_FILES += \
-        src/com/android/phone/EventLogTags.logtags \
-        src/com/android/phone/INetworkQueryService.aidl \
-        src/com/android/phone/INetworkQueryServiceCallback.aidl
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-LOCAL_ASSET_DIR := $(addprefix $(LOCAL_PATH)/, $(asset_dirs))
-LOCAL_USE_AAPT2 := true
-
-LOCAL_AAPT_FLAGS := \
-    --extra-packages com.android.phone.common \
-    --extra-packages com.android.services.telephony.sip
-
-LOCAL_PACKAGE_NAME := TeleService
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_PROGUARD_FLAG_FILES := proguard.flags sip/proguard.flags
-
-include frameworks/base/packages/SettingsLib/common.mk
-
-include $(BUILD_PACKAGE)
-
-# Build the test package
-include $(call all-makefiles-under,$(LOCAL_PATH))
-
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index a47100b..9ee5bab 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -32,14 +32,12 @@
     <protected-broadcast android:name="android.intent.action.EMERGENCY_CALL_STATE_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.DATA_STALL_DETECTED" />
     <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="com.android.internal.intent.action.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS" />
+    <protected-broadcast android:name="android.intent.action.USER_ACTIVITY_NOTIFICATION" />
+    <protected-broadcast android:name="android.telephony.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.telephony.action.SERVICE_PROVIDERS_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" />
@@ -50,7 +48,8 @@
     <protected-broadcast android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
     <protected-broadcast android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" />
     <protected-broadcast android:name="android.provider.Telephony.SMS_CB_RECEIVED" />
-    <protected-broadcast android:name="android.provider.Telephony.SMS_EMERGENCY_CB_RECEIVED" />
+    <protected-broadcast android:name="android.provider.action.SMS_EMERGENCY_CB_RECEIVED" />
+    <protected-broadcast android:name="android.provider.Telephony.SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED" />
     <protected-broadcast android:name="android.provider.Telephony.SECRET_CODE" />
     <protected-broadcast android:name= "com.android.internal.stk.command" />
     <protected-broadcast android:name= "com.android.internal.stk.session_end" />
@@ -62,7 +61,6 @@
     <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_SIGNAL_RESET" />
     <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE" />
     <protected-broadcast android:name= "com.android.internal.telephony.ACTION_LINE1_NUMBER_ERROR_DETECTED" />
-    <protected-broadcast android:name= "com.android.internal.telephony.ACTION_REPORT_RADIO_BUG" />
     <protected-broadcast android:name= "com.android.internal.provider.action.VOICEMAIL_SMS_RECEIVED" />
     <protected-broadcast android:name= "com.android.intent.isim_refresh" />
     <protected-broadcast android:name= "com.android.ims.ACTION_RCS_SERVICE_AVAILABLE" />
@@ -78,7 +76,7 @@
     <protected-broadcast android:name= "com.android.imsconnection.DISCONNECTED" />
     <protected-broadcast android:name= "com.android.intent.action.IMS_FEATURE_CHANGED" />
     <protected-broadcast android:name= "com.android.intent.action.IMS_CONFIG_CHANGED" />
-    <protected-broadcast android:name= "com.android.ims.REGISTRATION_ERROR" />
+    <protected-broadcast android:name= "android.telephony.ims.action.WFC_IMS_REGISTRATION_ERROR" />
     <protected-broadcast android:name= "com.android.phone.vvm.omtp.sms.REQUEST_SENT" />
     <protected-broadcast android:name= "com.android.phone.vvm.ACTION_VISUAL_VOICEMAIL_SERVICE_EVENT" />
     <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_VVM_PACKAGE_INSTALLED" />
@@ -96,6 +94,9 @@
     <!-- For Vendor Debugging in Telephony -->
     <protected-broadcast android:name="android.telephony.action.ANOMALY_REPORTED" />
 
+    <!-- Allows granting runtime permissions to telephony related components. -->
+    <uses-permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS" />
+
     <uses-permission android:name="android.permission.BROADCAST_STICKY" />
     <uses-permission android:name="android.permission.CALL_PHONE" />
     <uses-permission android:name="android.permission.CALL_PRIVILEGED" />
@@ -128,8 +129,8 @@
     <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" />
     <uses-permission android:name="android.permission.SET_TIME_ZONE" />
+    <uses-permission android:name="android.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
     <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
@@ -139,6 +140,7 @@
     <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.ACCESS_FINE_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"/>
@@ -157,8 +159,11 @@
     <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.READ_CARRIER_APP_INFO" />
     <uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES" />
-    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
+    <uses-permission android:name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS" />
+    <uses-permission android:name="android.permission.NETWORK_FACTORY" />
+    <uses-permission android:name="android.permission.OBSERVE_NETWORK_POLICY" />
     <uses-permission android:name="android.permission.SET_PREFERRED_APPLICATIONS" />
     <uses-permission android:name="android.permission.READ_SEARCH_INDEXABLES" />
     <uses-permission android:name="android.permission.DUMP" />
@@ -169,7 +174,8 @@
     <!-- BIND_CARRIER_MESSAGING_SERVICE has been deprecated in favor of BIND_CARRIER_SERVICES. -->
     <uses-permission android:name="android.permission.BIND_CARRIER_MESSAGING_SERVICE" />
     <uses-permission android:name="android.permission.BIND_EUICC_SERVICE" />
-    <uses-permission android:name="com.android.permission.BIND_TELEPHONY_NETWORK_SERVICE" />
+    <uses-permission android:name="android.permission.BIND_TELEPHONY_NETWORK_SERVICE" />
+    <uses-permission android:name="android.permission.BIND_CELL_BROADCAST_SERVICE" />
     <uses-permission android:name="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS" />
     <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
     <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
@@ -200,6 +206,10 @@
     <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
     <uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE" />
     <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" />
+    <!-- Allows us to whitelist receivers of the
+         ACTION_SIM_SLOT_STATUS_CHANGED broadcast to start activities
+         from the background.  -->
+    <uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
 
     <application android:name="PhoneApp"
             android:persistent="true"
@@ -233,6 +243,15 @@
                 <category android:name="android.intent.category.DEFAULT" />
                 <data android:scheme="tel" />
             </intent-filter>
+            <intent-filter>
+                <action android:name="android.intent.action.DIAL_EMERGENCY" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <intent-filter>
+                <action android:name="android.intent.action.DIAL_EMERGENCY" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="tel" />
+            </intent-filter>
         </activity>
 
         <activity android:name="ADNList" />
@@ -264,39 +283,6 @@
                   android:theme="@android:style/Theme.Translucent.NoTitleBar"
                   android:exported="false"/>
 
-        <!-- "Mobile network settings" screen, used on both
-             non-voice-capable tablets and regular phone devices. -->
-        <activity android:name="MobileNetworkSettings"
-            android:label="@string/network_settings_title"
-            android:theme="@style/NetworkOperatorsSettingsTheme">
-            <intent-filter>
-                <action android:name="android.intent.action.VIEW" />
-                <action android:name="android.intent.action.MAIN" />
-                <action android:name="android.settings.NETWORK_OPERATOR_SETTINGS" />
-                <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 -->
-        <!-- "Choose network" screen. Used only when the Automatically
-             select network turned off-->
-        <activity android:name="NetworkSelectSettingActivity"
-            android:label="@string/choose_network_title"
-            android:theme="@style/NetworkOperatorsSettingsTheme"
-            android:configChanges="orientation|screenSize">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-        </activity>
-
-        <!-- service to handle network query requests sent to RIL -->
-        <service android:name="NetworkQueryService" />
-
         <activity android:name="GsmUmtsCallOptions"
                 android:label="@string/gsm_umts_options"
                 android:theme="@style/DialerSettingsLight">
@@ -484,6 +470,21 @@
             </intent-filter>
         </activity>
 
+        <!--
+            Handler for EuiccManager's public action intents. These are public and do not require
+            any special permissions to start, although the calling package name should be
+            whitelisted by the underlying eUICC service implementation (i.e. the LPA).
+        -->
+        <activity android:name=".euicc.EuiccPublicActionUiDispatcherActivity"
+            android:theme="@android:style/Theme.NoDisplay">
+            <!-- Max out priority to ensure nobody else will handle these intents. -->
+            <intent-filter android:priority="1000">
+                <action android:name=
+                    "android.telephony.euicc.action.START_EUICC_ACTIVATION" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
         <activity android:name="EmergencyCallbackModeExitDialog"
             android:excludeFromRecents="true"
             android:label="@string/ecm_exit_dialog"
@@ -491,7 +492,7 @@
             android:theme="@android:style/Theme.Translucent.NoTitleBar">
             <intent-filter>
                 <action android:name="com.android.phone.action.ACTION_SHOW_ECM_EXIT_DIALOG" />
-                <action android:name="com.android.internal.intent.action.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS" />
+                <action android:name="android.telephony.action.SHOW_NOTICE_ECM_BLOCK_OTHERS" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
@@ -508,7 +509,7 @@
 
         <receiver android:name="com.android.services.telephony.sip.SipIncomingCallReceiver">
             <intent-filter>
-                <action android:name="com.android.phone.SIP_INCOMING_CALL" />
+                <action android:name="android.net.sip.action.SIP_INCOMING_CALL" />
             </intent-filter>
         </receiver>
 
@@ -539,6 +540,12 @@
                 android:uiOptions="splitActionBarWhenNarrow">
         </activity>
 
+        <service android:name="com.android.services.telephony.sip.components.TelephonySipService">
+            <intent-filter>
+                <action android:name="android.net.sip.action.START_SIP" />
+            </intent-filter>
+        </service>
+
         <!-- End SIP -->
 
         <activity android:name="MMIDialogActivity"
@@ -631,5 +638,33 @@
                 <action android:name="android.telephony.data.DataService" />
             </intent-filter>
         </service>
+
+        <activity
+            android:name=".settings.RadioInfo"
+            android:label="@string/phone_info_label"
+            android:theme="@style/Theme.AppCompat.DayNight">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".settings.BandMode"
+                  android:label="@string/band_mode_title"
+                  android:theme="@style/Theme.AppCompat.DayNight">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.VOICE_LAUNCH" />
+            </intent-filter>
+        </activity>
+
+        <provider
+            android:name="ServiceStateProvider"
+            android:authorities="service-state"
+            android:exported="true"
+            android:multiprocess="false"
+            android:singleUser="true"
+            android:writePermission="android.permission.MODIFY_PHONE_STATE"/>
     </application>
 </manifest>
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 1321ace..ed8a4da 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -48,3 +48,9 @@
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
 # ************************************************
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.android.services.telephony.common_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/framework/telephony-common.jar)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/framework/ims-common.jar)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/apex/com.android.telephony/javalib/telephony-common.jar)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/apex/com.android.telephony/javalib/ims-common.jar)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/apex/com.android.telephony.apex)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/TeleServiceLib)
\ No newline at end of file
diff --git a/OWNERS b/OWNERS
index 1ef8344..3059d4d 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,13 +1,15 @@
 amitmahajan@google.com
 breadley@google.com
 fionaxu@google.com
-hallliu@google.com
 jackyu@google.com
+hallliu@google.com
 rgreenwalt@google.com
 tgunn@google.com
-refuhoo@google.com
-mpq@google.com
 jminjie@google.com
 shuoq@google.com
-paulye@google.com
+refuhoo@google.com
 nazaninb@google.com
+sarahchin@google.com
+dbright@google.com
+xiaotonj@google.com
+
diff --git a/TEST_MAPPING b/TEST_MAPPING
new file mode 100644
index 0000000..e75dcb0
--- /dev/null
+++ b/TEST_MAPPING
@@ -0,0 +1,12 @@
+{
+  "presubmit": [
+    {
+      "name": "TeleServiceTests",
+      "options": [
+        {
+          "exclude-annotation": "androidx.test.filters.FlakyTest"
+        }
+      ]
+    }
+  ]
+}
diff --git a/apex/Android.bp b/apex/Android.bp
new file mode 100644
index 0000000..a7137d9
--- /dev/null
+++ b/apex/Android.bp
@@ -0,0 +1,33 @@
+apex_defaults {
+    name: "com.android.telephony-defaults",
+
+    // optional. if unspecified, a default one is auto-generated
+    androidManifest: "AndroidManifest.xml",
+
+    //java_libs: ["telephony-common", "ims-common", "voip-common"],
+    //apps: ["TeleService", "StkLib", "ONSLib"],
+
+    key: "com.android.telephony.key",
+    certificate: ":com.android.telephony.certificate",
+}
+
+apex {
+    name: "com.android.telephony",
+    manifest: "apex_manifest.json",
+    //apps: ["StkLib"],
+
+    defaults:["com.android.telephony-defaults"],
+}
+
+apex_key {
+    name: "com.android.telephony.key",
+    public_key: "com.android.telephony.avbpubkey",
+    private_key: "com.android.telephony.pem",
+}
+
+android_app_certificate {
+    name: "com.android.telephony.certificate",
+    // This will use com.android.telephony.x509.pem (the cert) and
+    // com.android.telephony.pk8 (the private key)
+    certificate: "com.android.telephony",
+}
diff --git a/apex/AndroidManifest.xml b/apex/AndroidManifest.xml
new file mode 100644
index 0000000..6f25d7c
--- /dev/null
+++ b/apex/AndroidManifest.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (C) 2019 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.telephony">
+    <!-- APEX does not have classes.dex -->
+    <application android:hasCode="false" />
+    <!-- Setting maxSdk to lock the module to R. minSdk is auto-set by build system -->
+</manifest>
diff --git a/apex/apex_manifest.json b/apex/apex_manifest.json
new file mode 100644
index 0000000..493d6fd
--- /dev/null
+++ b/apex/apex_manifest.json
@@ -0,0 +1,4 @@
+{
+  "name": "com.android.telephony",
+  "version": 1
+}
\ No newline at end of file
diff --git a/apex/com.android.telephony.avbpubkey b/apex/com.android.telephony.avbpubkey
new file mode 100644
index 0000000..cba14427
--- /dev/null
+++ b/apex/com.android.telephony.avbpubkey
Binary files differ
diff --git a/apex/com.android.telephony.pem b/apex/com.android.telephony.pem
new file mode 100644
index 0000000..19d8c05
--- /dev/null
+++ b/apex/com.android.telephony.pem
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIJKQIBAAKCAgEAvEOU0eLO65uykCUYoLBXxjsIB7pCIXahtyIMYiGuUl6tnYb2
+gjPxsD9fNrqgdT+WgzHlfMPr4GqkT7prSI4/y9NglnFk2nAKZLQwiwtLOmm54Cnp
+OqqQZ9+g4MvA2rsrmstJ/Pdu4t+9Bv9bZHYLEPCW4LV1v5S2jY7ie/C+SbZm8yFz
+X9RgTX7loH7oSNDqvVMRUeyrlH3gRHxPMQxIMfLMro1NCfkA4q8QnwPpM2+YEBf0
+kktXkvbfJUB0Ywo6BCVAoqxkghNQQTLBuBDFnho13gQSMOLu8C62pzdAyPm/n5Yv
+aqEdmmGkBsy2qiHTiRuiWWl9aGDhd0U6e+hYK4OM3ISDQiTr5OuraIKt8EH7jo8H
+Zb/WqJFygOq5RqXmAvbtq+eBAgLlUNAl5F9RwLU6zPTREsSGG/g1fqUSD4ZS2qHt
+d9aBdSepvL4xDCg9BDTFMt4Xjc83hk+v7nIIPB4cayA9s2kgjXwjZhiMOJuoNMmr
+Wu2GP9zw37WmUF5jXKgICVtoq//qofA3KA+YZ8NcmPRmeBzCEks5fCAZN64AIh5l
+vi8pPv+s8lbhGui/dkgJAGoMWKwukMZZDxTFfgbPU74yIWUpoiXGEv+0WPsOyxKe
+HEC0uXL6h6HtTaxTTyk9OJp1Z12ih2CdHmoK8aHeL1ND+YXxko4rcVyJGvcCAwEA
+AQKCAgAve1gAa5TGhZlOk5yXgoJQw7itwkNFj1cQCi1XXqlJqwlcrppjklhFnGYW
+NpGboLMEWcRIaF2IVz0jwp+mSAI9FQ3KQ8Us9o8YgP2xQ+LwU5QGvmtNWZFcMWGw
+8JKuWACSZO0/OOSlocpaBnN1bfQyjItxFzMgY5B7OWtT2Q8VJkTm0yv3Img7g2LE
+zN0m6FIb9+RpZiiMJgc3HqcWdsOKnXMUHx0sA7o+cereQC1DxMR0YqZTc18d+Nek
+3JG+HOku/HpFzPb4e4iFORj0pH5C9tdZLGuuGr4qo417tQrI5Xx38nf5C7OcqT2m
+XWFAnZFthiO3K0zu02hqHXK3p4z81aerzOAFHQP9Dvw0LrEevhMS7POwnoBMWIYT
+j2oJAKf84AIt+URNxRMcOH4Vs8133ZJxesotYzEdZBN4KBukCC+MzLtkJ3C3vLSu
+PPlwYfS0T/wMLBlQRfGM2pZbuldc4Th+VuE8lvDIvmZKxUXdAh/OkTJRt95SSpFQ
+PZy9NauagIaDyE08z3vgiYUH/498piibXiv4ox9puyfDI30W7VlZA9NBV7UBhkcV
+vxmop3U4KJdI0dcwB/8oQao/eM8Bk8TOI58Ux/gM+7tLM+pzeIPlKsZ3GWjZYyZi
+Fds7JdprR2AljUoKXAGA3G2IejhiB6VSivR8IRLwdWZSAaM9iQKCAQEA512QfnYR
+MDjYzUBYySHANVFi09q3taoYJ1Ovq4w3YnC4Yy6OM1rI1g55mhzGGnrQhC8//Lwy
+v9fxhxEQkx8rY40KJRizfc28l3gIFzF+/mP5DqUQiVZQBiAm0m0y3LA1xTCRxyc/
+yLWCodFOojcg8H3vxDUiL+80wLRX/zXmUHjhGmg+sZVtuWTVpgdFEGR1guVAoXPM
+t6p9+Zpr+yhURRuce7IfjVxIXtjzaZ6fglCYSnakhxvBMWvvhhD2Sx60bl0sBpsT
+oj4VZmd7i01bde1H2BlJ9ca23uGPylvmC+kVFVoqnMv7dZuhHgQY06zg+zts8Grm
+mVcTa5xKtEr2FQKCAQEA0E8t9/XV6tEH5BoiZ6SLIYeh+yk/h8hQKGn+lnzcywon
+L/EEtvqzoeIkbLATOk4ffbiYtI86GxldPUp293ups9rJCJdb7fIahJJd4Pl9d9QF
+dEWkuMC9btyBq0WjvJLIVxKLcBv9NAMnfLYIWk4OfAXQ2Kgv4OrYmxqtLdnzqIT0
+4jgQcHkaDbPIBkOAfAcyy6b6TNsdhiR/ojZ/3s7e0YpUhUkvGqHPeGkg827fznui
+mOSvuIC1eg92Kpsv/NzZkSkhh+Y4yT3mXTPkdRrIoRiwfUsBx9c3CUB1bhMlqYdP
+p9IwfcDYPmPIWqD/5EIm5CIFTh/qFuJuB/RP1xr72wKCAQEAm6BZGGdsqmYilvWI
+g0o7kuG6u0xstDrE4nctPBQmEQZHURe4uRyA6VN1Qk/GhXtFFRT/Uo55CIhFw5eb
+8YpO0jjFsSxLV/zytWQc9RTrGky+87XeSLMRQv2Pf43KX537nTdNZ4ukIOrPAu/a
+l8zDUGE1zWH8LAgYEON+KYHk+Q5GRFAIk8UyuDj2aSaMszkPvktczP0qoASDlkjk
+B14aSR4IhT/Mb3a6i2odWVdEbhCuT7A8fVETA55Z0HFKaj8uGOp9ObhIXaKrHGXR
+OWOAePNxlw9zq2nOCl/pK7HjLPHMp78t2Khw7awQlTMmTAQGlZdkcNdHY6+ptYG8
+0kd1/QKCAQAaosVB+5FK4UedByp3DjcsJmez8eZJundlc4g2PekNnVK9cpgjvZLS
+lFQMAcezoOGt9biw/c90P54IhEkKBCoC8WrbSl9a4aY6ZWzTo5NDizzXTUBuz1Zp
+opCCEfmJ10r+t0RVJX8O84hNDgmrYme/vA6kZX0ZyW3BB3w1bLUXS0j01C5l81Y9
+gkuFYYRAV7tLByLiSPJRgMFBQK7BErqzGHkOQflf8mjRAMBR4E+F25FC85r0gKCz
+5t45PHa6YpL/WL8M3YdNVDjsmgIQZ0hYMQwAOWMU5pQG/tMFLDWYo9CvqNTCf7Im
+6CNqU0PlMABBE4iSIMqR+ooPQlIjMzQZAoIBAQC9JulZdQJzjZSI5tBj+zPScJJQ
+s/+sRfQBy7SalPtc+oLYBP2Js9c1JsR4Dk2vC3V5z7BaL4Lg4YcFVRcz9B4yUVRm
+BL/E34XGLfn5KBI8NeqIvHiivvlAPgoHwHAVsqtE35E2sYjOYbnn1FEaNm6EKiL3
+Dv1auVdLlP3jALJIEwHPzc2ZOc/Sh/LolfajR427j5YlgbMAk5DdXuxz7t9qEcyk
+Nc8HFaoXiBP1jK+L5C4mVvGeI9xghNoJXhNywEmMa2Shab0pmtOMQWuvNMQa3gRC
+OKbaM3A6zjvAl3rjFRBrGORqbu1E/InLOSXWuB8knYVf8LkWEDRjOHqMO3pJ
+-----END RSA PRIVATE KEY-----
diff --git a/apex/com.android.telephony.pk8 b/apex/com.android.telephony.pk8
new file mode 100644
index 0000000..b15a884
--- /dev/null
+++ b/apex/com.android.telephony.pk8
Binary files differ
diff --git a/apex/com.android.telephony.x509.pem b/apex/com.android.telephony.x509.pem
new file mode 100644
index 0000000..8b45823
--- /dev/null
+++ b/apex/com.android.telephony.x509.pem
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIIGKTCCBBGgAwIBAgIUCmopA1YmjspwjjHHjmtsDPqxBxgwDQYJKoZIhvcNAQEL
+BQAwgaIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQH
+DA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdBbmRyb2lkMRAwDgYDVQQLDAdBbmRy
+b2lkMR4wHAYDVQQDDBVjb20uYW5kcm9pZC50ZWxlcGhvbnkxIjAgBgkqhkiG9w0B
+CQEWE2FuZHJvaWRAYW5kcm9pZC5jb20wIBcNMTkxMjA0MDAzNjAxWhgPNDc1NzEw
+MzAwMDM2MDFaMIGiMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEW
+MBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4GA1UECgwHQW5kcm9pZDEQMA4GA1UE
+CwwHQW5kcm9pZDEeMBwGA1UEAwwVY29tLmFuZHJvaWQudGVsZXBob255MSIwIAYJ
+KoZIhvcNAQkBFhNhbmRyb2lkQGFuZHJvaWQuY29tMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA4qQYe8S6yte4MUDF2/JBUulJLF15CdnALkDJuGYLRom2
+DxRpq2/IqX8gpwVfZCfVjtthKGMhsdLW9gI+oKck0eVB7Q2cU/WO+1Cr9cuKuT6B
+cfJUck125gRGmowWZomDXv1to6ZrGgqBlVGA546w3CNGXW/PoKr8im+xLEgD0TPA
+3jJCbxt2v2IDjMwPChHOF57y9wRkXN5aJHgwIvayReVy3Cko/rJOuPnNo2kLKI5u
+qfM4NovYNAzKbHHPCNzqhySoh2H0iTmHLby5bvXYh32ooGPmxrP6q8PubeNb+Xfc
+yY33tE74ityiqu/2FDuK2iZyL8EZkEWHbX4ddt/JREda1Mcnt95TUudqA28xHgC4
+wRYXLUADvKDVWOYu/ydWBes1iu7ZsEhy8oFdECsZGRQm2BkdmWAsMPUXRWeiaCQ4
+GFfpB38UPczY5GTgYwKAK3mmY5EeBKRu/hFMCfYGJvio2rUujRzIGOd6ovk+G/74
+Eqdbsphrkr6+UOCUrNOYUD0j7kDHVVDiWMoeKL6Qb+dFcewdDO1rRbZv8ZeExf6l
+vacfKKcEE+wls8jqof/y7cu+McGEn4R8+KKiRDcDQqLvZN4Q+CCtNRLiXA2KdrkB
+hKfhnTBBYfDNZA1WOhGrKM+Yb97ObgAgf2HuhZ2F40F3dRZ6w8yaURXAjkdCqycC
+AwEAAaNTMFEwHQYDVR0OBBYEFDCf58Ogbx07WK+hWEylNMxKYrj6MB8GA1UdIwQY
+MBaAFDCf58Ogbx07WK+hWEylNMxKYrj6MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
+hvcNAQELBQADggIBABoGWqoOfPBsXFYzP7aNhywhuCr6ddjAi3ss9vwod6JuVuVg
+Inuw1i/qPb/bO1JFEwYVH3w0JASMwzIl9h5sQv++z0P+cWsLW02AXyszb0jGD3CI
+ni/irO5PO0DdaTSHQWc8DEv0293EcqpKWmQDQ2XWH19rJ5f+Gx1046sFlUi633D2
+sFO5dG94pCtT/TcqwwkeEwA6cV2Re8F1AW8elal3sINBU5MI/OJ3GQDe+pqp9VTg
+xIEQfZ9oP6Ewl6Ect+M2hVG5X4mCk9HQL7aSuPKo2Ej6l3Xq4aQYlpO4wOVZgCJC
+chMbdAn2pjuk8+mDSR39hdIusOgr7zLZscmaGKyoxVz9KVNwd/mmu+9/mftGfYae
+RomF15hVnkhZAw21fSnhKry62+DuKt2WIyu5LqvTvRxFs0Hvoy3wrQY/oruHlgk1
+J1v1rXm3ZTrh2qv1XG8mOdTegurEvjkYQm0E38jdlkhByIHmhDdBARX2Aeb7Lrd8
+9k/7tr9+58+45punZBBMX6iW1xfwaCDF8xfZrrC96azXP6Kv/JZTxbfNm/dqHyKK
+zM2WhELaoJg7uFO9TC5eMsnBQzDoYXsr3Mu7nC7V1Bs/D7jYmFG0dG0LQJwUUGr1
+WqJT4LB0BMnzNrMH1hTQTBVYDlfn7c6fnihNBOWQt72x2GGFQsGAMUWb7pxC
+-----END CERTIFICATE-----
diff --git a/apex/testing/Android.bp b/apex/testing/Android.bp
new file mode 100644
index 0000000..10455a4
--- /dev/null
+++ b/apex/testing/Android.bp
@@ -0,0 +1,25 @@
+// Copyright (C) 2019 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.
+
+apex {
+    name: "test_com.android.telephony",
+    visibility: [
+        "//system/apex/tests",
+    ],
+    defaults: ["com.android.telephony-defaults"],
+    manifest: "test_manifest.json",
+    file_contexts: ":com.android.telephony-file_contexts",
+    // Test APEX, should never be installed
+    installable: false,
+}
\ No newline at end of file
diff --git a/apex/testing/AndroidManifest.xml b/apex/testing/AndroidManifest.xml
new file mode 100644
index 0000000..e2af9f5
--- /dev/null
+++ b/apex/testing/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (C) 2019 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.telephony">
+    <!-- APEX does not have classes.dex -->
+    <application android:hasCode="false" />
+    <uses-sdk
+        android:targetSdkVersion="30"
+    />
+</manifest>
\ No newline at end of file
diff --git a/apex/testing/test_manifest.json b/apex/testing/test_manifest.json
new file mode 100644
index 0000000..30bfda2
--- /dev/null
+++ b/apex/testing/test_manifest.json
@@ -0,0 +1,4 @@
+{
+  "name": "com.android.telephony",
+  "version": 2147483647
+}
\ No newline at end of file
diff --git a/client/res/values-af/strings.xml b/client/res/values-af/strings.xml
new file mode 100644
index 0000000..9e9877c
--- /dev/null
+++ b/client/res/values-af/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobiele data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Foondienste"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Noodbeller"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN-lys"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Kies kontakte om in te voer"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM-/UMTS-opsies"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-opsies"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Oproepinstellings"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Oproepaanstuur"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Oproepblokkering"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-oproepinstellings"</string>
+    <string name="fdn" msgid="1080701466751913822">"Belbeperkingnommers"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Voer PIN2 in"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Vee belbeperkingnommer uit"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Aktiveer/deaktiveer SIM-PIN"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Verander SIM-PIN"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Toeganklikheid"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialoog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ingeboude SIP-oproepe"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Oproeprekeninge"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Stemboodskap"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ingeboude SIM-kaarte"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tabletinligting"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Fooninligting"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Stel radiobandmodus"</string>
+</resources>
diff --git a/client/res/values-am/strings.xml b/client/res/values-am/strings.xml
new file mode 100644
index 0000000..fb1bc40
--- /dev/null
+++ b/client/res/values-am/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"የተንቀሳቃሽ ስልክ ውሂብ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"የስልክ አገልግሎቶች"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"የአደጋ ጊዜ ደዋይ"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"የኤፍዲኤን ዝርዝር"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ለማምጣት ዕውቂያዎችን ይምረጡ"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS አማራጮች"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"የCDMA አማራጮች"</string>
+    <string name="call_settings" msgid="8152058602760531097">"የጥሪ ቅንብሮች"</string>
+    <string name="labelCF" msgid="2140733390678280443">"ጥሪ ማስተላለፍ"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ጥሪ ከልክል"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"የGSM ጥሪ ቅንብሮች"</string>
+    <string name="fdn" msgid="1080701466751913822">"ቋሚ መደወያ ቁጥሮች"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"ፒን2ን ተይብ"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ቋሚ መደወያ ቁጥርን ሰርዝ"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"የሲም ፒን አንቃ/አሰናክል"</string>
+    <string name="change_pin" msgid="7219696137781706635">"የሲም ፒን ለውጥ"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ተደራሽነት"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"ውስጠ ግንቡ SIP መደወያ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"የመደወያ መለያዎች"</string>
+    <string name="voicemail" msgid="9083239047687566742">"የድምፅ መልዕክት"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"አብሮገነብ ሲም ካርዶች"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"የጡባዊ መረጃ"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"የስልክ መረጃ"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"የሬዲዮ ባንድ ሁነታን ያዘጋጁ"</string>
+</resources>
diff --git a/client/res/values-ar/strings.xml b/client/res/values-ar/strings.xml
new file mode 100644
index 0000000..58ff201
--- /dev/null
+++ b/client/res/values-ar/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"بيانات الجوّال"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"خدمات الهاتف"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"برنامج الاتصال في حالات الطوارئ"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"قائمة أرقام الطلب الثابتة"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"اختيار جهات اتصال لاستيرادها"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"‏خيارات نظام GSM/النظام العالمي لاتصالات الجوال عن بعد (UMTS)"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"‏خيارات CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"إعدادات المكالمات"</string>
+    <string name="labelCF" msgid="2140733390678280443">"إعادة توجيه المكالمات"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"منع الاتصال"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"‏إعدادات اتصال نظام GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"أرقام الطلب الثابتة"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"‏كتابة رقم PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"حذف رقم الطلب الثابت"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"‏تفعيل/إيقاف رقم التعريف الشخصي لشريحة SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"‏تغيير رقم التعريف الشخصي لشريحة SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"سهولة الاستخدام"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"‏اتصالات SIP مدمجة"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"حسابات الاتصال"</string>
+    <string name="voicemail" msgid="9083239047687566742">"بريد صوتي"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"‏شرائح SIM المدمجة"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"معلومات الجهاز اللوحي"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"معلومات الهاتف"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ضبط وضع النطاق اللاسلكي"</string>
+</resources>
diff --git a/client/res/values-as/strings.xml b/client/res/values-as/strings.xml
new file mode 100644
index 0000000..51fdb46
--- /dev/null
+++ b/client/res/values-as/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"ম’বাইল ডেটা"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ফ’নৰ সেৱাসমূহ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"জৰুৰীকালীন ডায়েলাৰ"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN তালিকা"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"আমদানি কৰিবলৈ সম্পৰ্কসমূহ বাছনি কৰক"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTSৰ বিকল্পসমূহ"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA বিকল্পসমূহ"</string>
+    <string name="call_settings" msgid="8152058602760531097">"কল ছেটিংসমূহ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"কল ফৰৱাৰ্ডিং"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"কল প্ৰতিবন্ধকতা"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM কল ছেটিংসমূহ"</string>
+    <string name="fdn" msgid="1080701466751913822">"ফিক্সড্‌ ডায়েলিং নম্বৰসমূহ"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2টো টাইপ কৰক"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ফিক্সড্‌ ডায়েলিং নম্বৰটো মচক"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"ছিমৰ পিন সক্ষম/অক্ষম কৰক"</string>
+    <string name="change_pin" msgid="7219696137781706635">"ছিমৰ পিনটো সলনি কৰক"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"সাধ্য সুবিধাসমূহ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"বিল্ট-ইন SIP কলিং"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"কলিং একাউণ্টসমূহ"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ভইচমেইল"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"বিল্ট-ইন ছিম কাৰ্ডসমূহ"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"টেবলেটৰ তথ্য"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ফ’নৰ তথ্য"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ৰেডিঅ’ৰ বেণ্ড ম’ড ছেট কৰক"</string>
+</resources>
diff --git a/client/res/values-az/strings.xml b/client/res/values-az/strings.xml
new file mode 100644
index 0000000..0fbccb5
--- /dev/null
+++ b/client/res/values-az/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobil data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefon xidmətləri"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Təcili nömrə yığan"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN siyahısı"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"İmport etmək üçün kontaktlar seçin"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS seçimləri"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA Seçimləri"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Zəng ayarları"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Zəng yönləndirmə"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Zəng bloklama"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM zəng ayarları"</string>
+    <string name="fdn" msgid="1080701466751913822">"Sabit yığım nömrələri"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PİN2 daxil edin"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Sabit yığım nömrəsini silin"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SİM-in PİN kodunu aktiv/deaktiv edin"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SİM-in PİN kodunu dəyişin"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Əlçatımlılıq"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Daxili SIP zəngi"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Zəng hesabları"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Səsli poçt"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Daxili SİM kartlar"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Planşet məlumatı"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefon məlumatı"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Radio diapazon rejimini quraşdırın"</string>
+</resources>
diff --git a/client/res/values-b+sr+Latn/strings.xml b/client/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 0000000..48bd373
--- /dev/null
+++ b/client/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobilni podaci"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefonske usluge"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Brojčanik za hitne pozive"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Lista brojeva za fiksno biranje"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Izaberite kontakte za uvoz"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opcije za GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA opcije"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Podešavanja poziva"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Preusmeravanje poziva"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Ograničavanje poziva"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Podešavanja GSM poziva"</string>
+    <string name="fdn" msgid="1080701466751913822">"Brojevi za fiksno biranje"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Unesite PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Izbrišite broj za fiksno biranje"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Omogućite/onemogućite PIN za SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Promenite PIN za SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Pristupačnost"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ugrađena funkcija SIP pozivanja"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Nalozi za pozivanje"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Govorna pošta"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ugrađene SIM kartice"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informacije o tabletu"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informacije o telefonu"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Podesite režim radijskog opsega"</string>
+</resources>
diff --git a/client/res/values-be/strings.xml b/client/res/values-be/strings.xml
new file mode 100644
index 0000000..6a9caa1
--- /dev/null
+++ b/client/res/values-be/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Мабільная перадача даных"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Тэлефонныя службы"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Набіральнік нумара для экстранных сітуацый"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Спіс фіксаваных нумароў"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Выберыце кантакты для імпарту"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Параметры GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Параметры CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Налады выклікаў"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Пераадрасацыя выкліку"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Забарона выкліку"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Налады выклікаў GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Фіксаваныя нумары"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Увядзіце код PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Выдаліць фіксаваны нумар"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Уключэнне/адключэнне PIN-коду SIM-карты"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Змена PIN-кода SIM-карты"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Спецыяльныя магчымасці"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Убудаваная SIP-тэлефанія"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Уліковыя запісы для выклікаў"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Галасавая пошта"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Убудаваныя SIM-карты"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Інфармацыя аб планшэце"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Звесткі аб тэлефоне"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Задаць рэжым радыёдыяпазону"</string>
+</resources>
diff --git a/client/res/values-bg/strings.xml b/client/res/values-bg/strings.xml
new file mode 100644
index 0000000..67d46d4
--- /dev/null
+++ b/client/res/values-bg/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Мобилни данни"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Телефонни услуги"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Набиране на спешни номера"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Списък с FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Избиране на контакти за импортиране"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Опции за GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Опции за CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Настройки за обаждане"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Прехвърляне на обаждания"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Забрана за обаждания"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Настройки за обаждане с GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Номера за фиксирано набиране"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Въведете PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Изтриване на номера за фиксирано набиране"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Активиране/деактивиране на ПИН за SIM карта"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Промяна на ПИН за SIM картата"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Достъпност"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Вградена услуга за обаждане през SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Профили за обаждане"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Гласова поща"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Вградени SIM карти"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Информация за таблета"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Информация за телефона"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Задаване на режима за радиодиапазона"</string>
+</resources>
diff --git a/client/res/values-bn/strings.xml b/client/res/values-bn/strings.xml
new file mode 100644
index 0000000..6044cbb
--- /dev/null
+++ b/client/res/values-bn/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"মোবাইল ডেটা"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ফোনের পরিষেবা"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"জরুরি ডায়ালার"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN সূচি"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ইম্পোর্ট করার জন্য পরিচিতি বেছে নিন"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS বিকল্প"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA বিকল্প"</string>
+    <string name="call_settings" msgid="8152058602760531097">"কল সেটিংস"</string>
+    <string name="labelCF" msgid="2140733390678280443">"কল ফরওয়ার্ডিং"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"কল নিষিদ্ধ করা"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM কল সেটিংস"</string>
+    <string name="fdn" msgid="1080701466751913822">"ফিক্সড ডায়ালিং নম্বর"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 টাইপ করুন"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ফিক্সড ডায়ালিং নম্বর মুছুন"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"সিমের পিন চালু/বন্ধ করুন"</string>
+    <string name="change_pin" msgid="7219696137781706635">"সিমের পিন পরিবর্তন করুন"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"অ্যাক্সেসিবিলিটি"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"অন্তর্নির্মিত SIP কলিং"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"কলিং অ্যাকাউন্ট"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ভয়েসমেল"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"বিল্ট-ইন সিম কার্ড"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ট্যাবলেটের তথ্য"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ফোনের তথ্য"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"রেডিও ব্যান্ড মোড সেট করুন"</string>
+</resources>
diff --git a/client/res/values-bs/strings.xml b/client/res/values-bs/strings.xml
new file mode 100644
index 0000000..4b48eb9
--- /dev/null
+++ b/client/res/values-bs/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Prijenos podataka na mobilnoj mreži"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefonske usluge"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Brojčana tastatura za hitne pozive"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN lista"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Odaberite kontakte za uvoz"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS opcije"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA opcije"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Postavke poziva"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Prosljeđivanje poziva"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Zabrana poziva"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Postavke za GSM poziv"</string>
+    <string name="fdn" msgid="1080701466751913822">"Brojevi fiksnog biranja"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Upišite PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Izbrišite broj fiksnog biranja"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Omogućite/onemogućite PIN za SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Promijenite PIN za SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Pristupačnost"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ugrađeno SIP pozivanje"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Računi za pozivanje"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Govorna pošta"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ugrađene SIM kartice"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informacije o tabletu"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informacije o telefonu"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Postavite način radijskog opsega"</string>
+</resources>
diff --git a/client/res/values-ca/strings.xml b/client/res/values-ca/strings.xml
new file mode 100644
index 0000000..b48a19d
--- /dev/null
+++ b/client/res/values-ca/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Dades mòbils"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Serveis del telèfon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Marcador d\'emergència"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Llista d\'FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Selecciona contactes per importar-los"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opcions de GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opcions de CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Configuració de trucades"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Desviació de trucades"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Restricció de trucades"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Configuració de trucades GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Números de marcatge fix"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Escriu el PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Suprimeix el número de marcatge fix"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Activa o desactiva el PIN de la SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Canvia el PIN de la SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibilitat"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Trucades SIP integrades"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Comptes de trucades"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Bústia de veu"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Targetes SIM integrades"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informació de la tauleta"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informació del telèfon"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Configura el mode de banda de senyal mòbil"</string>
+</resources>
diff --git a/client/res/values-cs/strings.xml b/client/res/values-cs/strings.xml
new file mode 100644
index 0000000..44e2301
--- /dev/null
+++ b/client/res/values-cs/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobilní data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefonní služby"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Tísňové volání"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Seznam povolených čísel"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Vyberte kontakty na import"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Možnosti GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Možnosti CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Nastavení hovoru"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Přesměrování hovorů"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Blokování hovorů"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Nastavení hovorů GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Povolená telefonní čísla"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Zadejte kód PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Smazat povolené telefonní číslo"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Povolit nebo zakázat PIN SIM karty"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Změnit PIN SIM karty"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Usnadnění"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"Dialog ukončení režimu tísňového zpětného volání"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Vestavěné volání SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Účty pro volání"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Hlasová schránka"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Vestavěné SIM karty"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informace o tabletu"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informace o telefonu"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Nastavit režim pásma bezdrátového modulu"</string>
+</resources>
diff --git a/client/res/values-da/strings.xml b/client/res/values-da/strings.xml
new file mode 100644
index 0000000..215da60
--- /dev/null
+++ b/client/res/values-da/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobildata"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Opkaldstjenester"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Nødopkald"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Numre til begrænset opkald"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Vælg kontakter, der skal importeres"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Indstillinger for GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Indstillinger for CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Indstillinger for opkald"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Viderestilling af opkald"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Opkaldsspærring"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Indstillinger for GSM-opkald"</string>
+    <string name="fdn" msgid="1080701466751913822">"Numre til begrænset opkald"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Angiv PIN2-kode"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Slet nummer til begrænset opkald"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Aktiver/deaktiver pinkode til SIM-kort"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Skift pinkode til SIM-kort"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Tilgængelighed"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"NttAfslutDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Indbygget SIP-opkald"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Opkaldskonti"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Talebesked"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Indbyggede SIM-kort"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Oplysninger om tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefonoplysninger"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Konfigurer radiobåndstilstand"</string>
+</resources>
diff --git a/client/res/values-de/strings.xml b/client/res/values-de/strings.xml
new file mode 100644
index 0000000..ad6a476
--- /dev/null
+++ b/client/res/values-de/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobile Daten"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefondienste"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Notruf"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Zugelassene Rufnummern"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Kontakte für Import auswählen"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM-/UMTS-Optionen"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-Optionen"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Anrufeinstellungen"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Anrufweiterleitung"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Anrufsperre"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-Anrufeinstellungen"</string>
+    <string name="fdn" msgid="1080701466751913822">"Rufnummernbeschränkung"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 eingeben"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Zugelassene Rufnummer löschen"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"PIN für SIM-Karte aktivieren/deaktivieren"</string>
+    <string name="change_pin" msgid="7219696137781706635">"PIN für SIM-Karte ändern"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Bedienungshilfen"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Integrierte SIP-Telefonie"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Anrufkonten"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Mailbox"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Integrierte SIM-Karten"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tablet-Informationen"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Über das Telefon"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Frequenzbereichmodus festlegen"</string>
+</resources>
diff --git a/client/res/values-el/strings.xml b/client/res/values-el/strings.xml
new file mode 100644
index 0000000..4ca4469
--- /dev/null
+++ b/client/res/values-el/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Δεδομένα κινητής τηλεφωνίας"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Υπηρεσίες τηλεφώνου"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Πρόγραμμα κλήσης έκτακτης ανάγκης"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Λίστα FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Επιλέξτε επαφές προς εισαγωγή"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Επιλογές GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Επιλογές CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Ρυθμίσεις κλήσης"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Προώθηση κλήσης"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Φραγή κλήσεων"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Ρυθμίσεις κλήσης GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Καθορισμένοι αριθμοί κλήσης"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Τύπος PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Διαγραφή καθορισμένου αριθμού κλήσης"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Ενεργοποίηση/απενεργοποίηση αριθμού PIN της κάρτας SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Αλλαγή αριθμού PIN κάρτας SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Προσβασιμότητα"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"Παράθυρο διαλόγου εξόδου από λειτουργία κλήσης έκτακτης ανάγκης"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ενσωματωμένη υπηρεσία κλήσεων SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Λογαριασμοί κλήσης"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Αυτόματος τηλεφωνητής"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ενσωματωμένες κάρτες SIM"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Πληροφορίες tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Πληροφορίες τηλεφώνου"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Ρύθμιση λειτουργίας ζώνης συχνοτήτων πομπού"</string>
+</resources>
diff --git a/client/res/values-en-rAU/strings.xml b/client/res/values-en-rAU/strings.xml
new file mode 100644
index 0000000..357fd69
--- /dev/null
+++ b/client/res/values-en-rAU/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobile data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Phone services"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Emergency dialler"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN list"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Select contacts to be imported"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS options"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA options"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Call settings"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Call forwarding"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Call barring"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM call settings"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fixed dialling numbers"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Type PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Delete fixed dialling number"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Enable/disable SIM PIN"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Change SIM PIN"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibility"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialogue"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Built-in SIP calling"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Calling accounts"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Voicemail"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Built-in SIM cards"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Phone info"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Set radio band mode"</string>
+</resources>
diff --git a/client/res/values-en-rCA/strings.xml b/client/res/values-en-rCA/strings.xml
new file mode 100644
index 0000000..357fd69
--- /dev/null
+++ b/client/res/values-en-rCA/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobile data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Phone services"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Emergency dialler"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN list"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Select contacts to be imported"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS options"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA options"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Call settings"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Call forwarding"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Call barring"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM call settings"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fixed dialling numbers"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Type PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Delete fixed dialling number"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Enable/disable SIM PIN"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Change SIM PIN"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibility"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialogue"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Built-in SIP calling"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Calling accounts"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Voicemail"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Built-in SIM cards"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Phone info"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Set radio band mode"</string>
+</resources>
diff --git a/client/res/values-en-rGB/strings.xml b/client/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..357fd69
--- /dev/null
+++ b/client/res/values-en-rGB/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobile data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Phone services"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Emergency dialler"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN list"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Select contacts to be imported"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS options"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA options"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Call settings"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Call forwarding"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Call barring"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM call settings"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fixed dialling numbers"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Type PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Delete fixed dialling number"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Enable/disable SIM PIN"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Change SIM PIN"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibility"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialogue"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Built-in SIP calling"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Calling accounts"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Voicemail"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Built-in SIM cards"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Phone info"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Set radio band mode"</string>
+</resources>
diff --git a/client/res/values-en-rIN/strings.xml b/client/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..357fd69
--- /dev/null
+++ b/client/res/values-en-rIN/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobile data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Phone services"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Emergency dialler"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN list"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Select contacts to be imported"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS options"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA options"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Call settings"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Call forwarding"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Call barring"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM call settings"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fixed dialling numbers"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Type PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Delete fixed dialling number"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Enable/disable SIM PIN"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Change SIM PIN"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibility"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialogue"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Built-in SIP calling"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Calling accounts"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Voicemail"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Built-in SIM cards"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Phone info"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Set radio band mode"</string>
+</resources>
diff --git a/client/res/values-en-rXC/strings.xml b/client/res/values-en-rXC/strings.xml
new file mode 100644
index 0000000..bd9de85
--- /dev/null
+++ b/client/res/values-en-rXC/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‏‎‏‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎Mobile Data‎‏‎‎‏‎"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‎‎‎‎‎‏‏‎‎Phone Services‎‏‎‎‏‎"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‏‎‎‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‎‎‏‎‏‏‎‏‎‏‏‎‎‏‏‎‏‎‏‎‏‏‎‎Emergency Dialer‎‏‎‎‏‎"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‎‎‏‏‏‏‎‏‏‎‏‏‎‏‏‎‎‎‎‎‏‎‎FDN list‎‏‎‎‏‎"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‎‎‎‎‏‎‎‎‏‎‎‏‎‎‎‎‎‎‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‎‏‎‏‎‏‎‎‎‎‎‎‎‎‎‎‏‏‎Select contacts to import‎‏‎‎‏‎"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‏‎‎‏‎‎‏‏‎‎‏‏‎‎‎‏‎‎‏‎‎‎‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‎‏‎‏‎‎GSM/UMTS Options‎‏‎‎‏‎"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‏‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‏‎‎CDMA Options‎‏‎‎‏‎"</string>
+    <string name="call_settings" msgid="8152058602760531097">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‏‏‎‏‏‏‎‎‏‎‏‎‏‏‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎‎‏‎Call settings‎‏‎‎‏‎"</string>
+    <string name="labelCF" msgid="2140733390678280443">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‎‏‏‎‏‎‏‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‏‏‎‎‎‏‏‎‎‏‎‎‏‎‎‏‎‎‎‏‏‏‏‏‎‏‏‎Call forwarding‎‏‎‎‏‎"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‎‏‎‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‏‎‏‏‏‎‎‏‎‎‎‎‏‏‎‏‏‏‎‏‏‎‎‎‎Call barring‎‏‎‎‏‎"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‎‏‎‏‏‎‎‎‏‎‏‏‏‏‏‏‎‎‏‎‏‎‏‏‏‏‏‏‏‎‏‎GSM call settings‎‏‎‎‏‎"</string>
+    <string name="fdn" msgid="1080701466751913822">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‎‎‎‎‏‎‎‎‎‏‏‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‏‎‏‏‏‏‎‎Fixed Dialing Numbers‎‏‎‎‏‎"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‏‎‎‎‎‏‎‏‎‏‏‎‎‏‏‎‏‎‎‎‎‎‏‎‏‎‏‎‎‏‏‏‎‎‎Type PIN2‎‏‎‎‏‎"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‎‎‏‏‏‏‏‎‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‎‎‏‎‏‎‏‎‏‎‎‏‎‎‎‎Delete fixed dialing number‎‏‎‎‏‎"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‎‏‏‎‎‎‎‏‎‏‏‎‎‏‏‎‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎‎‎‏‏‎‎‏‏‏‎‎‎‏‏‎‎‏‏‎Enable/disable SIM PIN‎‏‎‎‏‎"</string>
+    <string name="change_pin" msgid="7219696137781706635">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‏‎‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‎‎‏‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎Change SIM PIN‎‏‎‎‏‎"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‎‏‏‎Accessibility‎‏‎‎‏‎"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‎‎‎‎‏‏‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‏‏‎‎‏‎‎EcmExitDialog‎‏‎‎‏‎"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‎‏‏‎‎‎‎‏‏‎‏‏‏‏‏‎‎‏‎‏‎‎‏‎‎‎‏‎‎‎‎‎‏‎‎‏‎‏‏‎‎‏‏‏‎‎‏‏‎‏‎‎‎‏‎Built-in SIP calling‎‏‎‎‏‎"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‎‎‏‎‏‎‎‎‎‎‎‎‏‏‏‎‏‏‏‎‎‏‏‎‏‎‎‏‏‏‎‎‏‏‎‎‎Calling accounts‎‏‎‎‏‎"</string>
+    <string name="voicemail" msgid="9083239047687566742">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‎‎‏‎‎‏‎‏‏‏‎‎‏‎‎‏‏‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‏‎‎Voicemail‎‏‎‎‏‎"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‎‎‎‎‎‏‏‏‏‎‏‎‎‏‎‎‎‎‏‎‏‎‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎Built-in SIM cards‎‏‎‎‏‎"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‎‏‏‏‎‏‎‎‎‎‎‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‎‎‎‎‎‎‏‎‏‏‎‎‏‏‎‏‏‎‎Tablet info‎‏‎‎‏‎"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‏‏‎‎‎‎‎‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‎‎‎‎‏‏‎‎‏‎‏‏‏‏‏‏‎‏‎‏‎‎Phone info‎‏‎‎‏‎"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‏‎‏‏‏‎‏‎‎‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‏‏‎‏‎‎‎‏‏‏‎‎‎‏‎‎‏‏‏‏‏‎‎‎‎Set Radio Band Mode‎‏‎‎‏‎"</string>
+</resources>
diff --git a/client/res/values-es-rUS/strings.xml b/client/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..338b6b8
--- /dev/null
+++ b/client/res/values-es-rUS/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Datos móviles"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Servicios telefónicos"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Marcador de emergencia"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Lista de NMF"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Seleccionar contactos para importar"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opciones de GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opciones de CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Configuración de llamadas"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Desvío de llamadas"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Restricción de llamadas"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Configuración de llamadas de GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Marcación fija"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Ingresar el PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Borrar número de marcación fija"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Habilitar/inhabilitar PIN de tarjeta SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Cambiar PIN de SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accesibilidad"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Llamadas SIP integradas"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Cuentas telefónicas"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Buzón de voz"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Tarjetas SIM integradas"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Información de la tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Información del dispositivo"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Establecer modo de banda de radio"</string>
+</resources>
diff --git a/client/res/values-es/strings.xml b/client/res/values-es/strings.xml
new file mode 100644
index 0000000..7836aca
--- /dev/null
+++ b/client/res/values-es/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Datos móviles"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Servicios del teléfono"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Llamada de emergencia"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Lista de FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Seleccionar contactos para importarlos"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opciones GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opciones de CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Ajustes de llamadas"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Desvío de llamadas"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Bloqueo de llamadas"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Ajustes de llamadas GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Números de marcación fija"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Introducir código PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Eliminar número de marcación fija"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Habilitar o inhabilitar PIN de tarjeta SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Cambiar PIN de la tarjeta SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accesibilidad"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Llamadas SIP integradas"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Cuentas de llamadas"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Buzón de voz"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Tarjetas SIM integradas"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Información del tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Información sobre el teléfono"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Establecer modo de banda de señal móvil"</string>
+</resources>
diff --git a/client/res/values-et/strings.xml b/client/res/values-et/strings.xml
new file mode 100644
index 0000000..583e3c6
--- /dev/null
+++ b/client/res/values-et/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobiilne andmeside"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefoniteenused"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Hädaabikõne valija"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN-i loend"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Valige imporditavad kontaktid"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM-i/UMTS-i valikud"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA valikud"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Kõne seaded"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Kõne suunamine"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Kõnede blokeerimine"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-kõneseaded"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fikseeritud valimisnumbrid"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Sisestage PIN2-kood"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Kustuta fikseeritud valimisnumber"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM-i PIN-koodi lubamine/keelamine"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Muuda SIM-kaardi PIN-koodi"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Hõlbustus"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Sisseehitatud SIP-kõnede tegemine"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Kõnekontod"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Kõnepost"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Sisseehitatud SIM-kaardid"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Teave tahvelarvuti kohta"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefoniteave"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Raadio ribarežiimi määramine"</string>
+</resources>
diff --git a/client/res/values-eu/strings.xml b/client/res/values-eu/strings.xml
new file mode 100644
index 0000000..3bd2b1c
--- /dev/null
+++ b/client/res/values-eu/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Datu-konexioa"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefonoaren zerbitzuak"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Larrialdietarako markagailua"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN zenbakien zerrenda"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Hautatu inportatu beharreko kontaktuak"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS aukerak"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA aukerak"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Dei-ezarpenak"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Dei-desbideratzea"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Deiak debekatzeko aukera"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM deien ezarpenak"</string>
+    <string name="fdn" msgid="1080701466751913822">"Markatze finkoko zenbakiak"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Idatzi PIN2 kodea"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Ezabatu markatze finkoko zenbakia"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Gaitu/Desgaitu SIM txartelaren PIN kodea"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Aldatu SIMaren PIN kodea"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Erabilerraztasuna"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"SIP dei integratuak"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Deiak egiteko kontuak"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Ahots-mezua"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"SIM txartel integratuak"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tabletaren informazioa"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefonoaren informazioa"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Ezarri irrati-bandaren modua"</string>
+</resources>
diff --git a/client/res/values-fa/strings.xml b/client/res/values-fa/strings.xml
new file mode 100644
index 0000000..d2e67b3
--- /dev/null
+++ b/client/res/values-fa/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"داده‌ تلفن همراه"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"سرویس‌های تلفن"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"شماره‌گیر اضطراری"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"‏فهرست FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"انتخاب مخاطبین برای وارد کردن"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"‏گزینه‌های GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"‏گزینه‌های CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"تنظیمات تماس"</string>
+    <string name="labelCF" msgid="2140733390678280443">"هدایت تماس"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"محدودیت تماس"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"‏تنظیمات تماس GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"شماره‌های شماره‌گیری ثابت"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"تایپ پین۲"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"حذف شماره شماره‌گیری ثابت"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"فعال کردن/غیرفعال کردن پین سیم"</string>
+    <string name="change_pin" msgid="7219696137781706635">"تغییر پین سیم"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"دسترس‌پذیری"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"‏تماس SIP داخلی"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"حساب‌های تماس"</string>
+    <string name="voicemail" msgid="9083239047687566742">"پست صوتی"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"سیم‌کارت‌های داخلی"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"اطلاعات رایانه لوحی"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"اطلاعات تلفن"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"تنظیم حالت باند رادیو"</string>
+</resources>
diff --git a/client/res/values-fi/strings.xml b/client/res/values-fi/strings.xml
new file mode 100644
index 0000000..75f0ab9
--- /dev/null
+++ b/client/res/values-fi/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobiilidata"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Puhelinpalvelut"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Hätäpuhelut"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Sallittujen numeroiden luettelo"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Valitse tuotavat yhteystiedot"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS-asetukset"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-asetukset"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Puheluasetukset"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Soitonsiirto"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Puhelujen esto"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-puheluasetukset"</string>
+    <string name="fdn" msgid="1080701466751913822">"Sallitut numerot"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Anna PIN2-koodi"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Poista sallittu numero"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Ota SIM-kortin PIN-koodi käyttöön / poista koodi käytöstä"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Muuta SIM-kortin PIN"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Esteettömyys"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Sisäänrakennetut SIP-puhelut"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Puhelutilit"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Puhelinvastaaja"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Sisäiset SIM-kortit"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tabletin tiedot"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Puhelimen tiedot"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Radion taajuustilan valinta"</string>
+</resources>
diff --git a/client/res/values-fr-rCA/strings.xml b/client/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..c4070f6
--- /dev/null
+++ b/client/res/values-fr-rCA/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Données cellulaires"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Services téléphoniques"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Composeur d\'urgence"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Liste de NAF"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Sélectionner les contacts à importer"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Options GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Options CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Paramètres d\'appel"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Transfert d\'appel"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Interdiction d\'appel"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Paramètres d\'appel GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Numéros d\'appel fixe"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Entrer le NIP2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Supprimer un numéro autorisé"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Activer/désactiver le NIP de la carte SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Modifier le NIP de la carte SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibilité"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Appels SIP intégrés"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Comptes d\'appel"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Messagerie vocale"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Cartes SIM intégrées"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informations sur la tablette"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informations sur le téléphone"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Définir le mode de bande radio"</string>
+</resources>
diff --git a/client/res/values-fr/strings.xml b/client/res/values-fr/strings.xml
new file mode 100644
index 0000000..0966a9a
--- /dev/null
+++ b/client/res/values-fr/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Données mobiles"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Services téléphoniques"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Appels d\'urgence"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Liste de numéros autorisés"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Sélectionner les contacts à importer"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Options GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Options CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Paramètres d\'appel"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Transfert d\'appel"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Interdiction d\'appel"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Paramètres d\'appel GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Numéros autorisés"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Saisir le code PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Supprimer un numéro autorisé"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Activer/désactiver le code PIN de la carte SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Modifier le code PIN de la carte SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibilité"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Appels SIP intégrés"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Comptes téléphoniques"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Messagerie vocale"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Cartes SIM intégrées"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informations sur la tablette"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informations sur le téléphone"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Définir le mode de bande radio"</string>
+</resources>
diff --git a/client/res/values-gl/strings.xml b/client/res/values-gl/strings.xml
new file mode 100644
index 0000000..cdce574
--- /dev/null
+++ b/client/res/values-gl/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Datos móbiles"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Servizos de telefonía"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Marcador de emerxencia"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Lista de NMF"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Seleccionar contactos para importar"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opcións de GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opcións de CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Configuración de chamada"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Desvío de chamadas"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Restrición de chamadas"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Configuración de chamadas GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Números de marcación fixa"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Escribir PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Eliminar número de marcación fixa"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Activar ou desactivar o PIN da SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Cambiar PIN da SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accesibilidade"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Chamadas SIP integradas"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Contas de chamadas"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Correo de voz"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Tarxetas SIM integradas"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Información da tableta"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Información do teléfono"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Definir modo de banda do sinal móbil"</string>
+</resources>
diff --git a/client/res/values-gu/strings.xml b/client/res/values-gu/strings.xml
new file mode 100644
index 0000000..6c2d5a8
--- /dev/null
+++ b/client/res/values-gu/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"મોબાઇલ ડેટા"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ફોન સેવાઓ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"ઇમર્જન્સી ડાયલર"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDNની સૂચિ"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"આયાત કરવા માટે સંપર્કો પસંદ કરો"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTSના વિકલ્પો"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA વિકલ્પો"</string>
+    <string name="call_settings" msgid="8152058602760531097">"કૉલ સેટિંગ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"કૉલ ફૉરવર્ડિંગ"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"કૉલ અવરોધન"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM કૉલ સેટિંગ"</string>
+    <string name="fdn" msgid="1080701466751913822">"ફિક્સ્ડ ડાયલિંગ નંબર"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"પિન2 ટાઇપ કરો"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ફિક્સ્ડ ડાયલિંગ નંબર ડિલીટ કરો"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"સિમનો પિન ચાલુ/બંધ કરો"</string>
+    <string name="change_pin" msgid="7219696137781706635">"સિમનો પિન બદલો"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ઍક્સેસિબિલિટી"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"બિલ્ટ-ઇન SIP કૉલિંગ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"કૉલિંગ એકાઉન્ટ"</string>
+    <string name="voicemail" msgid="9083239047687566742">"વૉઇસમેઇલ"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"બિલ્ટ-ઇન સિમ કાર્ડ"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ટૅબ્લેટ વિશે માહિતી"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ફોનની માહિતી"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"રેડિયો બૅન્ડ મોડ સેટ કરો"</string>
+</resources>
diff --git a/client/res/values-hi/strings.xml b/client/res/values-hi/strings.xml
new file mode 100644
index 0000000..cc84a0d
--- /dev/null
+++ b/client/res/values-hi/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"मोबाइल डेटा"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"फ़ोन सेवाएं"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"आपातकालीन डायलर"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"एफ़डीएन सूची"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"इंपोर्ट करने के लिए संपर्कों को चुनें"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS के विकल्प"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA विकल्प"</string>
+    <string name="call_settings" msgid="8152058602760531097">"कॉल की सेटिंग"</string>
+    <string name="labelCF" msgid="2140733390678280443">"कॉल को दूसरे नंबर पर भेजना"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"कॉल रोकना"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM कॉल सेटिंग"</string>
+    <string name="fdn" msgid="1080701466751913822">"फ़िक्स्ड डायलिंग नंबर"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"पिन2 लिखें"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"फ़िक्स्ड डायलिंग नंबर मिटाएं"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"सिम कार्ड का पिन चालू/बंद करें"</string>
+    <string name="change_pin" msgid="7219696137781706635">"सिम कार्ड का पिन बदलें"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"सुलभता"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"अंतर्निहित SIP कॉलिंग"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"कॉलिंग खाते"</string>
+    <string name="voicemail" msgid="9083239047687566742">"वॉइसमेल"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"पहले से मौजूद सिम कार्ड"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"टैबलेट की जानकारी"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"फ़ोन की जानकारी"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"रेडियो बैंड मोड सेट करें"</string>
+</resources>
diff --git a/client/res/values-hr/strings.xml b/client/res/values-hr/strings.xml
new file mode 100644
index 0000000..63aa21d
--- /dev/null
+++ b/client/res/values-hr/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobilni podaci"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefonske usluge"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Brojčanik za hitne pozive"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Popis FDN brojeva"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Odabir kontakata za uvoz"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opcije za GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA opcije"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Postavke poziva"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Preusmjeravanje poziva"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Zabrana poziva"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Postavke GSM poziva"</string>
+    <string name="fdn" msgid="1080701466751913822">"Brojevi za fiksno biranje"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Upišite PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Izbrišite broj za fiksno biranje"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Omogući/onemogući PIN za SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Promjena PIN-a za SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Pristupačnost"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ugrađeni SIP pozivi"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Pozivanje računa"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Govorna pošta"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ugrađene SIM kartice"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informacije o tabletnom uređaju"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informacije o telefonu"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Postavi način radijske frekvencije"</string>
+</resources>
diff --git a/client/res/values-hu/strings.xml b/client/res/values-hu/strings.xml
new file mode 100644
index 0000000..84442e6
--- /dev/null
+++ b/client/res/values-hu/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobiladatok"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefonszolgáltatás"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Segélyhívó tárcsázó"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Fix hívószámok listája"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Válassza ki az importálni kívánt névjegyeket"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS beállításai"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-beállítások"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Hívásbeállítások"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Hívásátirányítás"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Híváskorlátozás"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-hívásbeállítások"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fix hívószámok"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Írja be a PIN2-kódot"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Fix hívószám törlése"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM-kártya PIN-kódjának be-/kikapcsolása"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN-kódjának módosítása"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Kisegítő lehetőségek"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Beépített SIP-hívás"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Telefonos fiókok"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Hangposta"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Beépített SIM-kártyák"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Táblagép adatai"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefon adatai"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Rádióhullámsáv mód beállítása"</string>
+</resources>
diff --git a/client/res/values-hy/strings.xml b/client/res/values-hy/strings.xml
new file mode 100644
index 0000000..1bd85cd
--- /dev/null
+++ b/client/res/values-hy/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Բջջային ինտերնետ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Հեռախոսի ծառայություններ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Արտակարգ իրավիճակների համարհավաքիչ"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN ցուցակ"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Ընտրեք կոնտակտներ ներմուծման համար"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ընտրանքներ"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA ընտրանքներ"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Զանգերի կարգավորումներ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Զանգի վերահասցեավորում"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Զանգերի արգելափակում"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM զանգերի կարգավորումներ"</string>
+    <string name="fdn" msgid="1080701466751913822">"Թույլատրված հեռախոսահամարներ"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Մուտքագրեք PIN2-ը"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Ջնջել թույլատրված հեռախոսահամարը"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Միացնել/անջատել SIM քարտի PIN կոդը"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM քարտի PIN կոոդի փոփոխում"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Հատուկ գործառույթներ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"SIP-ի միջոցով զանգերի ներկառուցված ծառայություն"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Հաշիվներ զանգերի համար"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Ձայնային փոստ"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ներկառուցված SIM քարտեր"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Պլանշետի մասին տեղեկություններ"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Հեռախոսի մասին տեղեկություններ"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Կարգավորել հաճախությունների շերտի ռեժիմը"</string>
+</resources>
diff --git a/client/res/values-in/strings.xml b/client/res/values-in/strings.xml
new file mode 100644
index 0000000..7be70c4
--- /dev/null
+++ b/client/res/values-in/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Data Seluler"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Layanan Telepon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Telepon Darurat"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Daftar NPT"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Pilih kontak untuk diimpor"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opsi GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opsi CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Setelan panggilan"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Penerusan panggilan"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Pemblokiran panggilan"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Setelan panggilan GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Panggilan Terbatas (FDN)"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Ketik PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Hapus nomor panggilan terbatas"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Aktifkan/nonaktifkan PIN SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Ubah PIN SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Aksesibilitas"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Panggilan SIP built-in"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Akun panggilan"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Pesan Suara"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Kartu SIM internal"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Info tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Info telepon"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Setel Mode Band Radio"</string>
+</resources>
diff --git a/client/res/values-is/strings.xml b/client/res/values-is/strings.xml
new file mode 100644
index 0000000..83974b3
--- /dev/null
+++ b/client/res/values-is/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Farsímagögn"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Símaþjónusta"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Neyðarnúmeraval"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Listi yfir fast númeraval"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Veldu tengiliði til að flytja inn"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Valkostir GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-valkostir"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Símtalsstillingar"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Símtalsflutningur"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Útilokun símtala"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-símtalsstillingar"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fast númeraval"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Sláðu inn PIN2-númerið"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Eyða föstu númeravali"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Gera PIN-númer SIM-korts virkt eða óvirkt"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Breyta PIN-númeri SIM-korts"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Aðgengi"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Innbyggð SIP-símtöl"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Símtalareikningar"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Talhólf"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Innbyggð SIM-kort"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Upplýsingar um spjaldtölvu"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Upplýsingar um síma"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Velja útvarpstíðni"</string>
+</resources>
diff --git a/client/res/values-it/strings.xml b/client/res/values-it/strings.xml
new file mode 100644
index 0000000..48a79c5
--- /dev/null
+++ b/client/res/values-it/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Dati mobili"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Phone Services"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Telefono di emergenza"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Elenco numeri consentiti"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Seleziona contatti da importare"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opzioni GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opzioni CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Impostazioni chiamate"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Deviazione chiamate"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Blocco chiamate"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Impostazioni di chiamata GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Numeri consentiti"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Digita PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Elimina numeri consentiti"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Attiva/disattiva PIN di SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Cambia PIN della SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibilità"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Chiamate SIP incorporate"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Account di chiamata"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Segreteria"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Schede SIM integrate"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Info tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Info telefono"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Imposta modalità banda radio"</string>
+</resources>
diff --git a/client/res/values-iw/strings.xml b/client/res/values-iw/strings.xml
new file mode 100644
index 0000000..24f0d80
--- /dev/null
+++ b/client/res/values-iw/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"חבילת גלישה"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"שירותי טלפון"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"חייגן חירום"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"רשימת מספרים קבועים לחיוג"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"בחירת אנשי קשר לייבוא"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"‏אפשרויות GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"‏אפשרויות CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"הגדרות השיחה"</string>
+    <string name="labelCF" msgid="2140733390678280443">"העברת שיחות"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"חסימת שיחות"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"‏הגדרות שיחה של GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"מספרים קבועים לחיוג"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"‏צריך להזין את קוד הגישה (PIN2)"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"מחיקת מספר קבוע לחיוג"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"‏הפעלה/השבתה של קוד גישה לכרטיס ה-SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"‏שינוי קוד הגישה של ה-SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"נגישות"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"‏שיחות SIP מובנות"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"חשבונות לשיחות"</string>
+    <string name="voicemail" msgid="9083239047687566742">"דואר קולי"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"‏כרטיסי SIM מובנים"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"פרטי הטאבלט"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"פרטי הטלפון"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"הגדרת מצב תדרים של רדיו"</string>
+</resources>
diff --git a/client/res/values-ja/strings.xml b/client/res/values-ja/strings.xml
new file mode 100644
index 0000000..c1994aa
--- /dev/null
+++ b/client/res/values-ja/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"モバイルデータ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"電話サービス"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"緊急通報"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"発信番号制限リスト"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"インポートする連絡先の選択"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM / UMTS オプション"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA オプション"</string>
+    <string name="call_settings" msgid="8152058602760531097">"通話設定"</string>
+    <string name="labelCF" msgid="2140733390678280443">"電話の転送"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"通話制限"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM 通話設定"</string>
+    <string name="fdn" msgid="1080701466751913822">"発信番号制限"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 を入力"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"発信番号制限の削除"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PIN の有効化 / 無効化"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN の変更"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ユーザー補助機能"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"内蔵SIP通話機能"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"通話アカウント"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ボイスメール"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"内蔵の SIM カード"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"タブレット情報"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"スマートフォン情報"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"無線バンドモードの設定"</string>
+</resources>
diff --git a/client/res/values-ka/strings.xml b/client/res/values-ka/strings.xml
new file mode 100644
index 0000000..16a6718
--- /dev/null
+++ b/client/res/values-ka/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"მობილური ინტერნეტი"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ტელეფონის სერვისები"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"გადაუდებელი ზარის აკრეფა"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN სია"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"აირჩიეთ კონტაქტი იმპორტისთვის"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ვარიანტები"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA პარამეტრები"</string>
+    <string name="call_settings" msgid="8152058602760531097">"ზარის პარამეტრები"</string>
+    <string name="labelCF" msgid="2140733390678280443">"ზარის გადამისამართება"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ზარების აკრძალვა"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM ზარის პარამეტრები"</string>
+    <string name="fdn" msgid="1080701466751913822">"დაშვებული ნომრები"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"აკრიფეთ PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"დაშვებული ნომრის წაშლა"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PIN-ის გააქტიურება/გამორთვა"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN-ის შეცვლა"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"მარტივი წვდომა"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"ჩაშენებული SIP ზარში"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"დარეკვის ანგარიშები"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ხმოვანი ფოსტა"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ჩაშენებული SIM ბარათები"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ინფორმაცია ტაბლეტის შესახებ"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ინფორმაცია ტელეფონის შესახებ"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"რადიოდიაპაზონის რეჟიმის დაყენება"</string>
+</resources>
diff --git a/client/res/values-kk/strings.xml b/client/res/values-kk/strings.xml
new file mode 100644
index 0000000..bddfa14
--- /dev/null
+++ b/client/res/values-kk/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Мобильдік интернет"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Телефон қызметтері"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Құтқару қызметінің нөмірін тергіш"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"ТТН тізімі"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Импортталатын контактілерді таңдау"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS опциялары"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA (кең жолақты әртүрлі кодты бірнеше қол жетімділік) опциялары"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Қоңырау параметрлері"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Қоңырауды басқа нөмірге бағыттау"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Қоңырауды бөгеу"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM қоңырауының параметрлері"</string>
+    <string name="fdn" msgid="1080701466751913822">"Рұқсат нөмірлері"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 кодын теріңіз"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Рұқсат нөмірлерін жою"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PIN кодын іске қосу/істен шығару"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN кодын өзгерту"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Арнайы мүмкіндіктер"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"КММтерезесіненШығу"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Кірістірілген SIP қоңыраулары"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Қоңырау шалатын есептік жазбалар"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Дауыстық пошта"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Кірістірілген SIM карталары"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Планшет туралы ақпарат"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Телефон ақпараты"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Радиожолақ режимін орнату"</string>
+</resources>
diff --git a/client/res/values-km/strings.xml b/client/res/values-km/strings.xml
new file mode 100644
index 0000000..553b30b
--- /dev/null
+++ b/client/res/values-km/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"ទិន្នន័យ​ទូរសព្ទ​ចល័ត"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"សេវា​ទូរសព្ទ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"ផ្ទាំង​ចុច​ហៅ​ទូរសព្ទ​ទៅ​លេខ​សង្គ្រោះ​បន្ទាន់"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"បញ្ជី FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ជ្រើសរើស​ទំនាក់ទំនង​ដែល​ត្រូវ​នាំចូល"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"ជម្រើស GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"ជម្រើស CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"ការកំណត់​ការហៅ​ទូរសព្ទ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"ការហៅ​បន្ត"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ការរារាំង​ការហៅ​ទូរសព្ទ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"ការកំណត់​ការហៅ​ទូរសព្ទ GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"លេខ​ហៅ​ថេរ"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"វាយ​បញ្ចូល​កូដ PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"លុប​លេខ​ហៅ​ថេរ"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"បិទ/បើក​កូដ PIN ស៊ីម"</string>
+    <string name="change_pin" msgid="7219696137781706635">"ប្ដូរ​កូដ PIN ស៊ីម"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ភាពងាយស្រួល"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"ភ្ជាប់មកជាមួយការហៅ SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"គណនី​ហៅ​ទូរសព្ទ"</string>
+    <string name="voicemail" msgid="9083239047687566742">"សារ​ជា​សំឡេង"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ស៊ីមកាត​ជាប់​ជាមួយ​ស្រាប់"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ព័ត៌មាន​ថេប្លេត"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ព័ត៌មាន​ទូរសព្ទ"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"កំណត់​មុខងារ​កម្រិត​បញ្ជូន​វិទ្យុ"</string>
+</resources>
diff --git a/client/res/values-kn/strings.xml b/client/res/values-kn/strings.xml
new file mode 100644
index 0000000..a18862d
--- /dev/null
+++ b/client/res/values-kn/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"ಮೊಬೈಲ್ ಡೇಟಾ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ಫೋನ್ ಸೇವೆಗಳು"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"ತುರ್ತು ಡಯಲರ್"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN ಪಟ್ಟಿ"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ಆಮದು ಮಾಡಲು ಸಂಪರ್ಕಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ಆಯ್ಕೆಗಳು"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA ಆಯ್ಕೆಗಳು"</string>
+    <string name="call_settings" msgid="8152058602760531097">"ಕರೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="labelCF" msgid="2140733390678280443">"ಕರೆ ಫಾರ್ವರ್ಡ್‌ ಮಾಡುವಿಕೆ"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM ಕರೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="fdn" msgid="1080701466751913822">"ಸ್ಥಿರ ಡಯಲಿಂಗ್‌‌ ಸಂಖ್ಯೆಗಳು"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"ಪಿನ್2 ಅನ್ನು ಟೈಪ್‌ ಮಾಡಿ"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ಸ್ಥಿರ ಡಯಲಿಂಗ್‌‌ ಸಂಖ್ಯೆಯನ್ನು ಅಳಿಸಿ"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"ಸಿಮ್‌ ಪಿನ್‌ ಸಕ್ರಿಯಗೊಳಿಸಿ/ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="change_pin" msgid="7219696137781706635">"ಸಿಮ್‌ ಪಿನ್‌ ಬದಲಾಯಿಸಿ"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ಪ್ರವೇಶಿಸುವಿಕೆ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"ಅಂತರ್ನಿರ್ಮಿತ ಎಸ್‌ಐಪಿ ಕರೆ ಮಾಡುವಿಕೆ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"ಕರೆ ಮಾಡುವ ಖಾತೆಗಳು"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ಧ್ವನಿಮೇಲ್"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ಅಂತರ್ನಿರ್ಮಿತ ಸಿಮ್‌ ಕಾರ್ಡ್‌ಗಳು"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ಟ್ಯಾಬ್ಲೆಟ್ ಮಾಹಿತಿ"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ಫೋನ್ ಮಾಹಿತಿ"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ರೇಡಿಯೋ ಬ್ಯಾಂಡ್ ಮೋಡ್ ಹೊಂದಿಸಿ"</string>
+</resources>
diff --git a/client/res/values-ko/strings.xml b/client/res/values-ko/strings.xml
new file mode 100644
index 0000000..f25c61f
--- /dev/null
+++ b/client/res/values-ko/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"모바일 데이터"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"전화 서비스"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"긴급 통화"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"발신 허용 번호 목록"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"가져올 주소록 선택"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS 옵션"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA 옵션"</string>
+    <string name="call_settings" msgid="8152058602760531097">"통화 설정"</string>
+    <string name="labelCF" msgid="2140733390678280443">"착신전환"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"착발신 제한"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM 통화 설정"</string>
+    <string name="fdn" msgid="1080701466751913822">"발신 허용 번호"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 입력"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"발신 허용 번호 삭제"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PIN 사용 설정/중지"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN 변경"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"접근성"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"SIP 통화 기본 지원"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"통화 계정"</string>
+    <string name="voicemail" msgid="9083239047687566742">"음성메시지"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"내장된 SIM 카드"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"태블릿 정보"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"휴대전화 정보"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"무선 주파수 대역 모드 설정"</string>
+</resources>
diff --git a/client/res/values-ky/strings.xml b/client/res/values-ky/strings.xml
new file mode 100644
index 0000000..f5895a2
--- /dev/null
+++ b/client/res/values-ky/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Мобилдик Интернет"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Телефон кызматтары"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Өзгөчө кырдаалдагы тергич"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Туруктуу терүү номерлеринин тизмеси"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Импорттоло турган байланыштарды тандаңыз"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS параметрлери"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA мүмкүнчүлүктөрү"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Чалуу жөндөөлөрү"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Чалууну башка номерге багыттоо"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Чалууларга тыюу салуу функциясы"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM чалуунун жөндөөлөрү"</string>
+    <string name="fdn" msgid="1080701466751913822">"Туруктуу терүү номерлери"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 териңиз"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Туруктуу терүү номерин өчүрүү"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM картанын PIN кодун иштетүү/өчүрүү"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM карта PIN кодун өзгөртүү"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Атайын мүмкүнчүлүктөр"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"Шашылыш кайра чалуу режими"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Камтылган SIP чалуу"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Чалуу аккаунттары"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Үн почтасы"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Орнотулган SIM карталар"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Планшеттин маалыматы"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Телефондун маалыматы"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Радио жыштыгынын режимин коюу"</string>
+</resources>
diff --git a/client/res/values-lo/strings.xml b/client/res/values-lo/strings.xml
new file mode 100644
index 0000000..8676edd
--- /dev/null
+++ b/client/res/values-lo/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"ອິນເຕີເນັດມືຖື"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ການບໍລິການໂທລະສັບ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"ແປ້ນໂທລະສັບໂທອອກສຸກເສີນ"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"ລາຍການ FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ເລືອກລາຍຊື່ຜູ້ຕິດຕໍ່ເພື່ອນຳເຂົ້າ"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"ຕົວເລືອກ GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"ຕົວເລືອກ CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"ຕັ້ງຄ່າການໂທ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"ການໂອນສາຍ"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ການລະງັບການໂທ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"ການຕັ້ງຄ່າການໂທ GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"ໝາຍເລກໂທອອກທີ່ກຳນົດ"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"ພິມ PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ລຶບໝາຍເລກໂທອອກທີ່ກຳນົດ"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"ປິດ/ເປີດນຳໃຊ້ PIN ຂອງ SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"ປ່ຽນ PIN ຂອງ SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ການຊ່ວຍເຂົ້າເຖິງ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"ການ​ໂທ SIP ໃນ​ເຄື່ອງ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"ບັນການຊີໂທ"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ຂໍ້ຄວາມສຽງ"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ຊິມກາດໃນຕົວ"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ຂໍ້​ມູນ​ແທັບເລັດ"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ຂໍ້​ມູນ​ໂທລະ​ສັບ"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ຕັ້ງຄ່າໂໝດແຖບຄວາມຖີ່ວິທະຍຸ"</string>
+</resources>
diff --git a/client/res/values-lt/strings.xml b/client/res/values-lt/strings.xml
new file mode 100644
index 0000000..48ee029
--- /dev/null
+++ b/client/res/values-lt/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobiliojo ryšio duomenys"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefono paslaugos"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Pagalbos numerio rinkiklis"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FRN sąrašas"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Pasirinkti importuojamus kontaktus"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM / UMTS parinktys"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA parinktys"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Skambinimo nustatymai"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Skambučių peradresavimas"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Skambučių blokavimas"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM skambinimo nustatymai"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fiksuotojo rinkimo numeriai"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Įveskite PIN2 kodą"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Ištrinti fiksuoto rinkimo numerį"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Įgalinti / išjungti SIM kortelės PIN kodą"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Pakeisti SIM kortelės PIN kodą"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Pritaikymas neįgaliesiems"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Integruotas SIP skambinimas"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Skambinimo paskyros"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Balso paštas"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Įtaisytosios SIM kortelės"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Planšetinio kompiuterio informacija"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefono informacija"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Nustatyti radijo dažnių režimą"</string>
+</resources>
diff --git a/client/res/values-lv/strings.xml b/client/res/values-lv/strings.xml
new file mode 100644
index 0000000..be99080
--- /dev/null
+++ b/client/res/values-lv/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobilie dati"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Tālruņa pakalpojumi"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Ārkārtas numura sastādītājs"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"IZSN saraksts"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Importējamo kontaktpersonu atlase"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS opcijas"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA opcijas"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Zvana iestatījumi"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Zvanu pāradresācija"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Zvanu aizliegšana"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM zvanu iestatījumi"</string>
+    <string name="fdn" msgid="1080701466751913822">"Atļautie numuri"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Ievadiet PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Fiksētā numura sastādīšanas numura dzēšana"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM kartes PIN iespējošana/atspējošana"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM kartes PIN mainīšana"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Pieejamība"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Iebūvēta SIP zvanu funkcija"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Zvanu konti"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Balss pasta ziņojums"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Iebūvētās SIM kartes"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informācija par planšetdatoru"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Tālruņa informācija"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Radio frekvenču joslu režīma iestatīšana"</string>
+</resources>
diff --git a/client/res/values-mk/strings.xml b/client/res/values-mk/strings.xml
new file mode 100644
index 0000000..febf964
--- /dev/null
+++ b/client/res/values-mk/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Мобилен интернет"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Телефонски услуги"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Бирач за итни случаи"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN-список"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Изберете контакти за увезување"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Опции за GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Опции за CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Поставки за повик"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Проследување повик"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Забрана на повик"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-поставки за повик"</string>
+    <string name="fdn" msgid="1080701466751913822">"Броеви со ограничено бирање"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Внесете PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Бришење број со ограничено бирање"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Овозможи/оневозможи PIN на SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Променување PIN на SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Пристапност"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Вградено повикување со SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Сметки за повикување"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Говорна пошта"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Вградени SIM-картички"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Информации за таблет"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Информации за телефонот"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Поставете режим на појас на радио"</string>
+</resources>
diff --git a/client/res/values-ml/strings.xml b/client/res/values-ml/strings.xml
new file mode 100644
index 0000000..8a17383
--- /dev/null
+++ b/client/res/values-ml/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"മൊബൈൽ ഡാറ്റ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ഫോൺ സേവനങ്ങൾ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"അടിയന്തര ഡയലർ"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN ലിസ്റ്റ്"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ഇമ്പോർട്ട് ചെയ്യാനുള്ള കോൺടാക്‌റ്റുകൾ തിരഞ്ഞെടുക്കുക"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ഓപ്‌ഷനുകൾ"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA ഓപ്‌ഷനുകൾ"</string>
+    <string name="call_settings" msgid="8152058602760531097">"കോൾ ക്രമീകരണം"</string>
+    <string name="labelCF" msgid="2140733390678280443">"കോൾ കൈമാറ്റം"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"കോൾ തടയൽ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM കോൾ ക്രമീകരണം"</string>
+    <string name="fdn" msgid="1080701466751913822">"സ്ഥിര ഡയലിംഗ് നമ്പറുകൾ"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 ടൈപ്പ് ചെയ്യുക"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"സ്ഥിര ഡയലിംഗ് നമ്പർ ഇല്ലാതാക്കുക"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"സിം പിൻ പ്രവർത്തനക്ഷമമാക്കുക/പ്രവർത്തനരഹിതമാക്കുക"</string>
+    <string name="change_pin" msgid="7219696137781706635">"സിം പിൻ മാറ്റുക"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ഉപയോഗസഹായി"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"അന്തർ നിർമ്മിത SIP കോൾചെയ്യൽ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"കോളിംഗ് അക്കൗണ്ട്"</string>
+    <string name="voicemail" msgid="9083239047687566742">"വോയ്‌സ്‌മെയിൽ"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ബിൽറ്റ് ഇൻ സിം കാർഡുകൾ"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ടാബ്‌ലെറ്റ് വിവരം"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ഫോൺ വിവരം"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"റേഡിയോ ബാൻഡ് മോഡ് സജ്ജീകരിക്കുക"</string>
+</resources>
diff --git a/client/res/values-mn/strings.xml b/client/res/values-mn/strings.xml
new file mode 100644
index 0000000..553905f
--- /dev/null
+++ b/client/res/values-mn/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Мобайл дата"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Утасны үйлчилгээ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Яаралтай тусламжийн залгагч"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Залгахаар тохируулсан дугаарын жагсаалт"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Импорт хийх харилцагчдыг сонгоно уу"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS-н тохиргоо"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA сонголтууд"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Дуудлагын тохиргоо"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Дуудлага шилжүүлэх"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Дуудлага хаах"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM дуудлагын тохиргоо"</string>
+    <string name="fdn" msgid="1080701466751913822">"Залгахаар тохируулсан дугаарууд"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"ПИН2-г оруулна уу"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Залгахаар тохируулсан дугаарыг устгах"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"СИМ-н ПИН-г идэвхжүүлэх/идэвхгүй болгох"</string>
+    <string name="change_pin" msgid="7219696137781706635">"СИМ-н ПИН-г өөрчлөх"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Хандалт"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"SIP дуудлага өгөгдсөн"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Дуудлага хийх эрхтэй бүртгэлүүд"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Дуут шуудан"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Бүрэлдэхүүн СИМ карт"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Таблетын мэдээлэл"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Утасны мэдээлэл"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Радио хязгаарын горимыг тохируулах"</string>
+</resources>
diff --git a/client/res/values-mr/strings.xml b/client/res/values-mr/strings.xml
new file mode 100644
index 0000000..d142525
--- /dev/null
+++ b/client/res/values-mr/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"मोबाइल डेटा"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"फोन सेवा"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"आणीबाणी डायलर"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN सूची"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"इंपोर्ट करण्यासाठी संपर्क निवडा"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS पर्याय"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA पर्याय"</string>
+    <string name="call_settings" msgid="8152058602760531097">"कॉल सेटिंग्ज"</string>
+    <string name="labelCF" msgid="2140733390678280443">"कॉल फॉरवर्डिंग"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"कॉल बारिंग"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM कॉल सेटिंग्ज"</string>
+    <string name="fdn" msgid="1080701466751913822">"निश्चित डायलिंग नंबर"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 टाइप करा"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"निश्चित डायलिंग नंबर हटवा"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"सिम पिन सुरू/बंद करा"</string>
+    <string name="change_pin" msgid="7219696137781706635">"सिम पिन बदला"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ॲक्सेसिबिलिटी"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"अंगभूत SIP कॉल करणे"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"कॉल करण्याची खाती"</string>
+    <string name="voicemail" msgid="9083239047687566742">"व्हॉइसमेल"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"अंगभूत सिम कार्डे"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"टॅबलेट माहिती"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"फोन माहिती"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"रेडिओ बँड मोड सेट करा"</string>
+</resources>
diff --git a/client/res/values-ms/strings.xml b/client/res/values-ms/strings.xml
new file mode 100644
index 0000000..1146adb
--- /dev/null
+++ b/client/res/values-ms/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Data Mudah Alih"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Perkhidmatan Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Pendail Kecemasan"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Senarai FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Pilih kenalan untuk diimport"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Pilihan GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Pilihan CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Tetapan panggilan"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Pemajuan panggilan"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Sekatan panggilan"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Tetapan panggilan GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Nombor Dailan Tetap"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Jenis PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Padam nombor dailan tetap"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Dayakan/lumpuhkan PIN SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Tukar PIN SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Kebolehcapaian"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Panggilan SIP terbina dalam"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Akaun panggilan"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Mel suara"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Kad SIM terbina dalam"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Maklumat tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Maklumat telefon"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Tetapkan Mod Jalur Radio"</string>
+</resources>
diff --git a/client/res/values-my/strings.xml b/client/res/values-my/strings.xml
new file mode 100644
index 0000000..9a4637a
--- /dev/null
+++ b/client/res/values-my/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"မိုဘိုင်းဒေတာ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ဖုန်းဝန်ဆောင်မှုများ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"အရေးပေါ်ခေါ်ဆိုရန် နံပါတ်အကွက်"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN စာရင်း"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ထည့်သွင်းမည့်လိပ်စာများကို ရွေးရန်"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ရွေးချယ်မှုများ"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA ရွေးချယ်စရာများ"</string>
+    <string name="call_settings" msgid="8152058602760531097">"ခေါ်ဆိုမှု ဆက်တင်များ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"အဝင်ဖုန်းကို ဆက်ပို့ပေးခြင်း"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ခေါ်ဆိုမှုကို ပိတ်ပင်ရန်"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM ခေါ်ဆိုမှု ဆက်တင်များ"</string>
+    <string name="fdn" msgid="1080701466751913822">"ခေါ်ဆိုရန် ကန့်သတ်နံပါတ်"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"ပင်နံပါတ် ၂ ကို ထည့်ပါ"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ခေါ်ဆိုရန် ကန့်သတ်နံပါတ်ကို ဖျက်မည်"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"ဆင်းမ် ပင်နံပါတ်ကို ဖွင့်/ပိတ်ထားရန်"</string>
+    <string name="change_pin" msgid="7219696137781706635">"ဆင်းမ်ကဒ် ပင်နံပါတ်ပြောင်းရန်"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"အသုံးလွယ်မှု"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"SIP မူလခေါ်ဆိုမှု"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"ခေါ်ဆိုသော အကောင့်များ"</string>
+    <string name="voicemail" msgid="9083239047687566742">"အသံမေးလ်"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"အသင့်ပါ ဆင်းမ်ကဒ်များ"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"တက်ဘလက် အချက်အလက်"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ဖုန်းအချက်အလက်"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ရေဒီယိုလိုင်းမုဒ်အဖြစ် သတ်မှတ်ပါ"</string>
+</resources>
diff --git a/client/res/values-nb/strings.xml b/client/res/values-nb/strings.xml
new file mode 100644
index 0000000..80b7a0c
--- /dev/null
+++ b/client/res/values-nb/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobildata"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefontjenester"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Nødnummer"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Liste over faste numre"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Velg kontaktene du vil importere"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS-innstillinger"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-innstillinger"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Samtaleinnstillinger"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Viderekobling"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Anropsblokkering"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Innstillinger for GSM-samtaler"</string>
+    <string name="fdn" msgid="1080701466751913822">"Forhåndsbestemte numre"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Skriv inn PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Slett programmert telefonnummer"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Slå av/på PIN-kode for SIM-kort"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Endre SIM-PIN-koden"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Tilgjengelighet"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Innebygd SIP-anrop"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Ringekontoer"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Talepost"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Innebygde SIM-kort"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informasjon om nettbrettet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefoninformasjon"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Angi båndmodus for radio"</string>
+</resources>
diff --git a/client/res/values-ne/strings.xml b/client/res/values-ne/strings.xml
new file mode 100644
index 0000000..a5efc11
--- /dev/null
+++ b/client/res/values-ne/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"मोबाइल डेटा"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"फोन सेवाहरू"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"आपतकालीन डायलर"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN सूची"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"आयात गर्न सम्पर्कहरू चयन गर्नुहोस्"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS सम्बन्धी विकल्पहरू"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA का विकल्पहरू"</string>
+    <string name="call_settings" msgid="8152058602760531097">"कलसम्बन्धी सेटिङ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"कल फर्वार्ड गर्ने सेवा"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"कल ब्यारिङ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM कलसम्बन्धी सेटिङ"</string>
+    <string name="fdn" msgid="1080701466751913822">"स्थिर डायलिङ नम्बरहरू"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 टाइप गर्नुहोस्"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"स्थिर डायलिङ नम्बर मेट्नुहोस्"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PIN सक्षम/असक्षम पार्नुहोस्"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM को PIN परिवर्तन गर्नुहोस्"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"पहुँच"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"अन्तरनिर्मित SIP कल"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"कल गर्ने खाताहरू"</string>
+    <string name="voicemail" msgid="9083239047687566742">"भ्वाइस मेल"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"अन्तर्निर्मित SIM कार्डहरू"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ट्याब्लेटसम्बन्धी जानकारी"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"फोनसम्बन्धी जानकारी"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"रेडियोको ब्यान्डसम्बन्धी मोड सेट गर्नुहोस्"</string>
+</resources>
diff --git a/client/res/values-nl/strings.xml b/client/res/values-nl/strings.xml
new file mode 100644
index 0000000..83d11b2
--- /dev/null
+++ b/client/res/values-nl/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobiele data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefoonservices"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Kiezer noodoproep"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN-lijst"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Contacten selecteren om te importeren"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM-/UMTS-opties"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-opties"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Gespreksinstellingen"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Gesprek doorschakelen"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Gesprek blokkeren"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-gespreksinstellingen"</string>
+    <string name="fdn" msgid="1080701466751913822">"Vaste nummers"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 opgeven"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Vast nummer verwijderen"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM pincode in-/uitschakelen"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Pincode sim wijzigen"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Toegankelijkheid"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ingebouwde SIP-gesprekken"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Gespreksaccounts"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Voicemail"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ingebouwde simkaarten"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tabletinformatie"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefooninfo"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Modus voor radioband instellen"</string>
+</resources>
diff --git a/client/res/values-or/strings.xml b/client/res/values-or/strings.xml
new file mode 100644
index 0000000..3bfa3f5
--- /dev/null
+++ b/client/res/values-or/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"ମୋବାଇଲ୍ ଡାଟା"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ଫୋନ୍ ସେବା"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"ଜରୁରୀକାଳୀନ ଡାଏଲର୍"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN ତାଲିକା"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ଇମ୍ପୋର୍ଟ କରିବା ପାଇଁ ଯୋଗାଯୋଗଗୁଡ଼ିକୁ ଚୟନ କରନ୍ତୁ"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ବିକଳ୍ପ"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA ବିକଳ୍ପ"</string>
+    <string name="call_settings" msgid="8152058602760531097">"କଲ୍ ସେଟିଂସ୍"</string>
+    <string name="labelCF" msgid="2140733390678280443">"କଲ୍‌ ଫର୍‌ୱାର୍ଡିଂ"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"କଲ୍ ବାରିଂ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM କଲ୍ ସେଟିଂସ୍‌"</string>
+    <string name="fdn" msgid="1080701466751913822">"ସ୍ଥାୟୀ ଡାଏଲିଙ୍ଗ ନମ୍ବରଗୁଡ଼ିକ"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 ଟାଇପ୍ କରନ୍ତୁ"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ସ୍ଥାୟୀ ଡାଏଲିଙ୍ଗ ନମ୍ବରକୁ ଡିଲିଟ୍ କରନ୍ତୁ"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PINକୁ ସକ୍ଷମ/ଅକ୍ଷମ କରନ୍ତୁ"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN ବଦାଳନ୍ତୁ"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ଆକ୍ସେସିବିଲିଟୀ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"ବିଲ୍ଟ-ଇନ୍ SIP କଲିଙ୍ଗ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"କଲିଂ ଆକାଉଣ୍ଟଗୁଡ଼ିକ"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ଭଏସ୍‌ମେଲ୍"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ବିଲ୍ଟ-ଇନ୍ SIM କାର୍ଡ"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ଟାବ୍‌ଲେଟ୍‍ର ସୂଚନା"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ଫୋନ୍‍ର ସୂଚନା"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ରେଡିଓ ବ୍ୟାଣ୍ଡ ମୋଡ୍ ସେଟ୍ କରନ୍ତୁ"</string>
+</resources>
diff --git a/client/res/values-pa/strings.xml b/client/res/values-pa/strings.xml
new file mode 100644
index 0000000..2eac401
--- /dev/null
+++ b/client/res/values-pa/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"ਮੋਬਾਈਲ ਡਾਟਾ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ਫ਼ੋਨ ਸੇਵਾਵਾਂ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"ਸੰਕਟਕਾਲੀਨ ਡਾਇਲਰ"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN ਸੂਚੀ"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ਆਯਾਤ ਕਰਨ ਲਈ ਸੰਪਰਕ ਚੁਣੋ"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ਵਿਕਲਪ"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA ਚੋਣਾਂ"</string>
+    <string name="call_settings" msgid="8152058602760531097">"ਕਾਲ ਸੈਟਿੰਗਾਂ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"ਕਾਲ ਫਾਰਵਰਡਿੰਗ"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ਕਾਲ ਬੈਰਿੰਗ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM ਕਾਲ ਸੈਟਿੰਗਾਂ"</string>
+    <string name="fdn" msgid="1080701466751913822">"ਫਿਕਸਡ ਡਾਇਲਿੰਗ ਨੰਬਰ"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"ਪਿੰਨ2 ਟਾਈਪ ਕਰੋ"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ਫਿਕਸਡ ਡਾਇਲਿੰਗ ਨੰਬਰ ਮਿਟਾਓ"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"ਸਿਮ ਪਿੰਨ ਨੂੰ ਚਾਲੂ ਕਰੋ/ਬੰਦ ਕਰੋ"</string>
+    <string name="change_pin" msgid="7219696137781706635">"ਸਿਮ ਪਿੰਨ ਬਦਲੋ"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ਪਹੁੰਚਯੋਗਤਾ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"ਬਿਲਟ-ਇਨ SIP ਕਾਲਿੰਗ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"ਕਾਲਿੰਗ ਖਾਤੇ"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ਵੌਇਸਮੇਲ"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ਬਿਲਟ-ਇਨ ਸਿਮ ਕਾਰਡ"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ਟੈਬਲੈੱਟ ਜਾਣਕਾਰੀ"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ਫ਼ੋਨ ਜਾਣਕਾਰੀ"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ਰੇਡੀਓ ਬੈਂਡ ਮੋਡ ਸੈੱਟ ਕਰੋ"</string>
+</resources>
diff --git a/client/res/values-pl/strings.xml b/client/res/values-pl/strings.xml
new file mode 100644
index 0000000..642e241
--- /dev/null
+++ b/client/res/values-pl/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobilna transmisja danych"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefon – usługi"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Numery alarmowe"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Wybieranie ustalone"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Wybierz kontakty do zaimportowania"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opcje GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opcje CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Ustawienia połączeń"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Przekierowanie połączeń"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Blokada połączeń"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Ustawienia połączenia GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Wybieranie ustalone"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Wpisz kod PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Usuń wybieranie ustalone"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Włącz/wyłącz kod PIN do karty SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Zmień PIN do karty SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Ułatwienia dostępu"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Wbudowanie połączenia SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Konta telefoniczne"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Poczta głosowa"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Wbudowane karty SIM"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informacje o tablecie"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informacje o telefonie"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Ustawianie trybu pasma radiowego"</string>
+</resources>
diff --git a/client/res/values-pt-rPT/strings.xml b/client/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..ad6b116
--- /dev/null
+++ b/client/res/values-pt-rPT/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Dados móveis"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Serviços de telemóvel"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Telefone de emergência"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Lista de FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Selecione os contactos a importar"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opções GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opções CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Definições de chamadas"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Reencaminhamento de chamadas"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Barramento de chamadas"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Definições de chamadas GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Números de marcação fixa (FDN)"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Introduzir PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Eliminar números autorizados"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Ativar/desativar o PIN do cartão SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Alterar PIN do SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Acessibilidade"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Chamadas SIP incorporadas"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Contas de chamadas"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Correio de voz"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Cartões SIM incorporados"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informações do tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informações do telefone"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Definir modo de banda de rádio"</string>
+</resources>
diff --git a/client/res/values-pt/strings.xml b/client/res/values-pt/strings.xml
new file mode 100644
index 0000000..28a7709
--- /dev/null
+++ b/client/res/values-pt/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Dados móveis"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Serviços do smartphone"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Discador de emergência"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Lista de FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Selecione os contatos a serem importados"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opções de GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opções CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Configurações de chamada"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Encaminhamento de chamada"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Bloqueio de chamadas"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Configurações de chamada GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Números de discagem fixa"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Digitar PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Excluir número de discagem fixa"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Ativar/desativar PIN do chip"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Alterar PIN do chip"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Acessibilidade"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Chamadas SIP incorporadas"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Contas de chamadas"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Correio de voz"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Chips integrados"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informações do tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informações do smartphone"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Definir modo de banda de rádio"</string>
+</resources>
diff --git a/client/res/values-ro/strings.xml b/client/res/values-ro/strings.xml
new file mode 100644
index 0000000..fad774e
--- /dev/null
+++ b/client/res/values-ro/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Date mobile"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefon – Servicii"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Tastatură de telefon de urgență"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Listă NAR"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Selectați persoane de contact pentru import"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opțiuni GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opțiuni CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Setări pentru apeluri"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Redirecționare apeluri"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Restricționarea apelurilor"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Setările apelului GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Numere apeluri restricționate"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Introduceți codul PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Ștergeți numărul pentru apeluri restricționate"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Activați/dezactivați codul PIN al cardului SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Schimbați codul PIN pentru SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accesibilitate"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Apelare SIP integrată"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Conturi pentru apelare"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Mesagerie vocală"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Carduri SIM încorporate"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informații tabletă"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informații telefon"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Setați Modul bandă radio"</string>
+</resources>
diff --git a/client/res/values-ru/strings.xml b/client/res/values-ru/strings.xml
new file mode 100644
index 0000000..4335f88
--- /dev/null
+++ b/client/res/values-ru/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Мобильный Интернет"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Телефон – сервисы"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Экстренный вызов"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Разрешенные номера"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Выберите контакты для импорта"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Параметры GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Параметры CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Настройки вызовов"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Переадресация вызовов"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Запрет вызовов"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Настройки вызовов GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Разрешенные номера"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Введите PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Удалить разрешенный номер"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Включить/отключить запрос PIN-кода SIM-карты"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Изменить PIN-код SIM-карты"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Специальные возможности"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Встроенный сервис звонков через SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Аккаунты для вызовов"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Голосовая почта"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Встроенные SIM-карты"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Информация о планшетном ПК"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Информация о телефоне"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Настроить режим радиостанции"</string>
+</resources>
diff --git a/client/res/values-si/strings.xml b/client/res/values-si/strings.xml
new file mode 100644
index 0000000..856b2a5
--- /dev/null
+++ b/client/res/values-si/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"ජංගම දත්ත"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"දුරකථන සේවා"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"හදිසි අවස්ථා ඩයල්කරු"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN ලැයිස්තුව"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ආයාත කිරීමට සම්බන්ධතා තෝරන්න"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS විකල්ප"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA විකල්ප"</string>
+    <string name="call_settings" msgid="8152058602760531097">"ඇමතුම් සැකසීම්"</string>
+    <string name="labelCF" msgid="2140733390678280443">"ඇමතුම යොමු කිරීම"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ඇමතුම අවහිර කිරීම"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM ඇමතුම් සැකසීම්"</string>
+    <string name="fdn" msgid="1080701466751913822">"ස්ථාවර ඇමතුම් අංක"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 ටයිප් කරන්න"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ස්ථාවර ඇමතුම් අංකය මකන්න"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PIN අංකය සබල/අබල කරන්න"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN අංකය වෙනස් කරන්න"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ප්‍රවේශ්‍යතාව"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"තැනූ SIP ඇමතුම්"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"ගිණුම් ඇමතීම"</string>
+    <string name="voicemail" msgid="9083239047687566742">"හඬ තැපෑල"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"තිළැලි SIM කාඩ් පත්"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ටැබ්ලට් තොරතුරු"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"දුරකථන තොරතුරු"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"රේඩියෝ කලාප ප්‍රකාරය සකසන්න"</string>
+</resources>
diff --git a/client/res/values-sk/strings.xml b/client/res/values-sk/strings.xml
new file mode 100644
index 0000000..5b8f291
--- /dev/null
+++ b/client/res/values-sk/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobilné dáta"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefónne služby"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Tiesňové vytáčanie"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Zoznam režimu povolených čísel"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Výber kontaktov na import"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Možnosti GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Možnosti CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Nastavenia hovoru"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Presmerovanie hovorov"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Blokovanie hovorov"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Nastavenia hovorov GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Režim povolených čísel"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Zadajte kód PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Odstrániť povolené číslo"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Povoliť alebo zakázať kód PIN SIM karty"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Zmeniť kód PIN karty SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Dostupnosť"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"Dialóg ukončenia režimu tiesňového spätného volania"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Vstavané hovory SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Telefónne účty"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Hlasová schránka"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Vstavané SIM karty"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informácie o tablete"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informácie o telefóne"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Nastaviť režim rádiového pásma"</string>
+</resources>
diff --git a/client/res/values-sl/strings.xml b/client/res/values-sl/strings.xml
new file mode 100644
index 0000000..fca5ac2
--- /dev/null
+++ b/client/res/values-sl/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Prenos podatkov v mobilnem omrežju"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefonske storitve"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Klicalnik za nujne primere"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Seznam FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Izberite stike za uvoz"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Možnosti GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Možnosti CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Nastavitve klicanja"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Posredovanje klicev"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Zapora klicev"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Nastavitve klicev GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Številke za omejeno klicanje"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Vnesite kodo PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Urejanje številke za omejeno klicanje"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Omogočenje/onemogočenje kode PIN za kartico SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Sprememba kode PIN kartice SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Dostopnost"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Vgrajeno klicanje SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Računi za klicanje"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Odzivnik"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Vgrajene kartice SIM"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Podatki o tabličnem računalniku"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informacije o telefonu"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Nastavljanje načina radijskega območja"</string>
+</resources>
diff --git a/client/res/values-sq/strings.xml b/client/res/values-sq/strings.xml
new file mode 100644
index 0000000..f759c78
--- /dev/null
+++ b/client/res/values-sq/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Të dhënat celulare"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Shërbimet e telefonit"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Formuesi i numrit të urgjencës"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Lista e FDN-ve"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Zgjidh kontaktet për importim"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opsionet GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opsionet CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Cilësimet e telefonatave"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Transferimi i telefonatave"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Bllokimi i telefonatave"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Cilësimet e telefonatës GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Numrat me telefonim të përzgjedhur"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Shkruaj kodin PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Fshi numrin me telefonim të përzgjedhur"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Aktivizo/çaktivizo PIN-in e kartës SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Ndrysho PIN-in e kartës SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Qasshmëria"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Telefonata SIP e integruar"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Llogaritë e telefonatave"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Posta zanore"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Kartat e integruara SIM"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informacion mbi tabletin"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informacioni i telefonit"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Cakto modalitetin e brezit të radios"</string>
+</resources>
diff --git a/client/res/values-sr/strings.xml b/client/res/values-sr/strings.xml
new file mode 100644
index 0000000..c34f23f
--- /dev/null
+++ b/client/res/values-sr/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Мобилни подаци"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Телефонске услуге"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Бројчаник за хитне позиве"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Листа бројева за фиксно бирање"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Изаберите контакте за увоз"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Опције за GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA опције"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Подешавања позива"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Преусмеравање позива"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Ограничавање позива"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Подешавања GSM позива"</string>
+    <string name="fdn" msgid="1080701466751913822">"Бројеви за фиксно бирање"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Унесите PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Избришите број за фиксно бирање"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Омогућите/онемогућите PIN за SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Промените PIN за SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Приступачност"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Уграђена функција SIP позивања"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Налози за позивање"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Говорна пошта"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Уграђене SIM картице"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Информације о таблету"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Информације о телефону"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Подесите режим радијског опсега"</string>
+</resources>
diff --git a/client/res/values-sv/strings.xml b/client/res/values-sv/strings.xml
new file mode 100644
index 0000000..09c177e
--- /dev/null
+++ b/client/res/values-sv/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobildata"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefontjänster"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Nödsamtal"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN-lista"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Välj kontakter att importera"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Alternativ för GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-alternativ"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Samtalsinställningar"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Vidarebef. samtal"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Samtalsspärr"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Samtalsinst. för GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fasta nummer"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Ange PIN2-kod"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Ta bort fast nummer"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Aktivera/inaktivera SIM-kortets pinkod"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Ändra pinkod för SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Tillgänglighet"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Inbyggd tjänst för SIP-samtal"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Konton för samtal"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Röstbrevlåda"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Inbyggda SIM-kort"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Information om surfplattan"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefoninformation"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Konfigurera radiobandsläget"</string>
+</resources>
diff --git a/client/res/values-sw/strings.xml b/client/res/values-sw/strings.xml
new file mode 100644
index 0000000..c0a2929
--- /dev/null
+++ b/client/res/values-sw/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Data ya mtandao wa simu"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Huduma za Simu"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Kipiga Simu za Dhararu"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Orodha ya FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Chagua anwani za kuleta"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Chaguo za GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Chaguo za CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Mipangilio ya simu"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Kusambaza simu"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Kuzuia upigaji simu"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Mipangilio ya simu ya GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Nambari za Simu Zilizobainishwa"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Andika PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Futa nambari ya simu iliyobainishwa"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Wezesha/zima PIN ya SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Badilisha PIN ya SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Ufikivu"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Upigaji simu wa SIP uliojengewa ndani ya kifaa"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Akaunti za simu"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Ujumbe wa sauti"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"SIM kadi zilizojengewa ndani"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Maelezo kuhusu kompyuta kibao"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Maelezo ya simu"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Weka Hali ya Bendi ya Redio"</string>
+</resources>
diff --git a/client/res/values-ta/strings.xml b/client/res/values-ta/strings.xml
new file mode 100644
index 0000000..c738660
--- /dev/null
+++ b/client/res/values-ta/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"மொபைல் டேட்டா"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"மொபைல் சேவைகள்"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"அவசரகால டயலர்"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN பட்டியல்"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"இறக்க வேண்டிய தொடர்புகளைத் தேர்ந்தெடுக்கவும்"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS விருப்பங்கள்"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA விருப்பங்கள்"</string>
+    <string name="call_settings" msgid="8152058602760531097">"அழைப்பு அமைப்புகள்"</string>
+    <string name="labelCF" msgid="2140733390678280443">"அழைப்புப் பகிர்வு"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"அழைப்புத் தடுப்பு"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM அழைப்பு அமைப்புகள்"</string>
+    <string name="fdn" msgid="1080701466751913822">"நிலையான அழைப்பு எண்கள்"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"பின்2 ஐ உள்ளிடுக"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"நிலையான அழைப்பு எண்ணை நீக்கு"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"சிம்மின் பின்னை இயக்கு/முடக்கு"</string>
+    <string name="change_pin" msgid="7219696137781706635">"சிம்மின் பின்னை மாற்று"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"அணுகல் தன்மை"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"உள்கட்டமைக்கப்பட்ட SIP அழைப்பு"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"அழைப்புக் கணக்குகள்"</string>
+    <string name="voicemail" msgid="9083239047687566742">"குரலஞ்சல்"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"உள்ளமைந்த சிம் கார்டுகள்"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"டேப்லெட்டின் தகவல்"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"மொபைலின் தகவல்"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ரேடியோ பேண்டு பயன்முறையை அமை"</string>
+</resources>
diff --git a/client/res/values-te/strings.xml b/client/res/values-te/strings.xml
new file mode 100644
index 0000000..891da37
--- /dev/null
+++ b/client/res/values-te/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"మొబైల్ డేటా"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ఫోన్ సేవలు"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"అత్యవసర డయలర్"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN జాబితా"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"దిగుమతి చేయాల్సిన కాంటాక్ట్‌లను ఎంచుకోండి"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ఎంపికలు"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA ఎంపికలు"</string>
+    <string name="call_settings" msgid="8152058602760531097">"కాల్ సెట్టింగ్‌లు"</string>
+    <string name="labelCF" msgid="2140733390678280443">"కాల్ ఫార్వర్డింగ్"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"కాల్ నిషేధం"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM కాల్ సెట్టింగ్‌లు"</string>
+    <string name="fdn" msgid="1080701466751913822">"ఫిక్సెడ్ డయలింగ్ నంబర్‌లు"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"పిన్2ను టైప్ చేయండి"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ఫిక్స్‌డ్ డయలింగ్ నంబర్‌ను తొలగించండి"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM పిన్‌ను ఎనేబుల్/డిజేబుల్ చేయండి"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM పిన్‌ను మార్చండి"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"యాక్సెసిబిలిటీ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"అంతర్నిర్మిత SIP కాలింగ్"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"కాల్ చేసే ఖాతాలు"</string>
+    <string name="voicemail" msgid="9083239047687566742">"వాయిస్ మెయిల్"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"అంతర్నిర్మిత SIM కార్డ్‌లు"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"టాబ్లెట్ సమాచారం"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ఫోన్ సమాచారం"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"రేడియో బ్యాండ్ మోడ్‌ను సెట్ చేయండి"</string>
+</resources>
diff --git a/client/res/values-th/strings.xml b/client/res/values-th/strings.xml
new file mode 100644
index 0000000..2814f9a
--- /dev/null
+++ b/client/res/values-th/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"อินเทอร์เน็ตมือถือ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"บริการโทรศัพท์"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"โปรแกรมโทรออกฉุกเฉิน"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"รายการ FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"เลือกผู้ติดต่อที่จะนำเข้า"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"ตัวเลือก GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"ตัวเลือก CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"การตั้งค่าการโทร"</string>
+    <string name="labelCF" msgid="2140733390678280443">"การโอนสาย"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ระงับการโทร"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"การตั้งค่าการโทร GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"หมายเลขโทรออกที่กำหนดตายตัว"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"พิมพ์ PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ลบหมายเลขโทรออกที่กำหนดตายตัว"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"เปิด/ปิดใช้ PIN ของซิม"</string>
+    <string name="change_pin" msgid="7219696137781706635">"เปลี่ยน PIN ของซิม"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"การช่วยเหลือพิเศษ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"การโทรผ่าน SIP ในตัว"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"บัญชีการโทร"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ข้อความเสียง"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ซิมการ์ดในตัว"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ข้อมูลแท็บเล็ต"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ข้อมูลโทรศัพท์"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ตั้งค่าโหมดย่านความถี่วิทยุ"</string>
+</resources>
diff --git a/client/res/values-tl/strings.xml b/client/res/values-tl/strings.xml
new file mode 100644
index 0000000..12cd30c
--- /dev/null
+++ b/client/res/values-tl/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobile Data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Mga Serbisyo sa Telepono"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Pang-emergency na Dialer"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Listahan ng FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Piliin ang mga contact na ii-import"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Mga pagpipilian sa GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Mga pagpipiliian sa CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Mga setting ng tawag"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Pagpasa ng tawag"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Pag-bar ng tawag"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Mga setting ng tawag ng GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Mga Fixed Dialing Number"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"I-type ang PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"I-delete ang fixed dialing number"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"I-enable/i-disable ang PIN ng SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Baguhin ang PIN ng SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Pagiging Accessible"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Built-in na pagtawag sa pamamagitan ng SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Mga account sa pagtawag"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Voicemail"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Mga built-in na SIM card"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Impormasyon ng tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Impormasyon ng telepono"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Itakda ang Band Mode ng Radyo"</string>
+</resources>
diff --git a/client/res/values-tr/strings.xml b/client/res/values-tr/strings.xml
new file mode 100644
index 0000000..30293cd
--- /dev/null
+++ b/client/res/values-tr/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobil Veri"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefon Hizmetleri"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Acil Durum Çeviricisi"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"SAN listesi"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"İçe aktarılacak kişileri seçin"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS Seçenekleri"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA Seçenekleri"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Arama ayarları"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Arama yönlendirme"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Arama engelleme"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM arama ayarları"</string>
+    <string name="fdn" msgid="1080701466751913822">"Sabit Arama Numaraları"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2\'yi yazın"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Sabit arama numarasını silin"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PIN\'ini etkinleştirin/devre dışı bırakın"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN\'ini Değiştir"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Erişilebilirlik"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Yerleşik SIP arama"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Arama hesapları"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Sesli Mesaj"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Yerleşik SIM kartlar"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tablet bilgileri"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefon bilgileri"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Radyo Bant Modunu Ayarla"</string>
+</resources>
diff --git a/client/res/values-uk/strings.xml b/client/res/values-uk/strings.xml
new file mode 100644
index 0000000..d25162b
--- /dev/null
+++ b/client/res/values-uk/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Мобільний Інтернет"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Телефонні сервіси"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Аварійний телефон"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Список фіксованих номерів"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Виберіть контакти для імпорту"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Параметри GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Параметри CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Налаштування виклику"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Переадресація виклику"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Заборона викликів"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Налаштування викликів GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Фіксовані номери"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Введіть PIN2-код"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Видалити фіксований номер"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Увімкнути/вимкнути PIN-код SIM-карти"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Змінити PIN-код SIM-карти"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Спеціальні можливості"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Вбудована функція викликів SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Облікові записи для викликів"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Голосова пошта"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Вбудовані SIM-карти"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Інформація про пристрій"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Інформація про телефон"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Установити режим радіодіапазону"</string>
+</resources>
diff --git a/client/res/values-ur/strings.xml b/client/res/values-ur/strings.xml
new file mode 100644
index 0000000..1ed7325
--- /dev/null
+++ b/client/res/values-ur/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"موبائل ڈیٹا"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"فون سروسز"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"ہنگامی ڈائلر"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"‏FDN کی فہرست"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"درآمد کے لیے رابطوں کا انتخاب کریں"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"‏GSM/UMTS کے اختیارات"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"‏CDMA کے اختیارات"</string>
+    <string name="call_settings" msgid="8152058602760531097">"کال کی ترتیبات"</string>
+    <string name="labelCF" msgid="2140733390678280443">"کال فارورڈنگ"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"کال میں رکاوٹ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"‏GSM کال کی ترتیبات"</string>
+    <string name="fdn" msgid="1080701466751913822">"فکسڈ ڈائلنگ نمبرز"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"‏PIN2 ٹائپ کریں"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"فکسڈ ڈائلنگ نمبر حذف کریں"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"‏SIM کا PIN فعال/غیر فعال کریں"</string>
+    <string name="change_pin" msgid="7219696137781706635">"‏SIM کا PIN تبدیل کریں"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ایکسیسبیلٹی"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"‏پہلے سے شامل SIP کالنگ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"کالنگ اکاؤنٹس"</string>
+    <string name="voicemail" msgid="9083239047687566742">"صوتی میل"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"‏پہلے سے شامل SIM کارڈز"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ٹیبلیٹ کی معلومات"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"فون کی معلومات"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ریڈیو بینڈ موڈ سیٹ کریں"</string>
+</resources>
diff --git a/client/res/values-uz/strings.xml b/client/res/values-uz/strings.xml
new file mode 100644
index 0000000..beef319
--- /dev/null
+++ b/client/res/values-uz/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Mobil internet"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefon xizmatlari"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Favqulodda chaqiruv"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Ruxsat etilgan raqamlar"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Import qilish uchun kontaktlarni tanlang"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS sozlamalari"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA sozlamalari"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Chaqiruv sozlamalari"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Chaqiruvlarni uzatish"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Chaqiruvlarni taqiqlash"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM tarmog‘i qo‘ng‘iroq sozlamalari"</string>
+    <string name="fdn" msgid="1080701466751913822">"Ruxsat etilgan raqamlar"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 kodni kiriting"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Ruxsat etilgan raqamni o‘chirish"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM karta uchun PIN-kod so‘rovini yoqish/o‘chirish"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM karta PIN-kodini almashtirish"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Maxsus imkoniyatlar"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ichki o‘rnatilgan SIP qo‘ng‘iroqlari"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Chaqiruv uchun hisoblar"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Ovozli pochta"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ichki o‘rnatilgan SIM kartalar"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Planshet haqida"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefon haqida"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Tarmoq rejimini sozlash"</string>
+</resources>
diff --git a/client/res/values-vi/strings.xml b/client/res/values-vi/strings.xml
new file mode 100644
index 0000000..cfbf3df
--- /dev/null
+++ b/client/res/values-vi/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Dữ liệu di động"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Dịch vụ điện thoại"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Trình quay số khẩn cấp"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Danh sách FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Chọn danh bạ để nhập"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Tùy chọn GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Tùy chọn CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Tùy chọn cài đặt cuộc gọi"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Chuyển tiếp cuộc gọi"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Chặn cuộc gọi"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Tùy chọn cài đặt cuộc gọi GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Số gọi định sẵn"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Nhập PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Xóa số gọi định sẵn"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Bật/tắt mã PIN của SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Đổi mã PIN của SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Truy cập"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Tính năng gọi điện SIP tích hợp sẵn"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Tài khoản gọi"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Thư thoại"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Thẻ SIM tích hợp sẵn"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Thông tin về máy tính bảng"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Thông tin điện thoại"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Đặt chế độ dải tần số"</string>
+</resources>
diff --git a/client/res/values-zh-rCN/strings.xml b/client/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..07ba878
--- /dev/null
+++ b/client/res/values-zh-rCN/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"移动数据"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"电话服务"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"紧急拨号器"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"固定拨号列表"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"选择要导入的联系人"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS 选项"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA 选项"</string>
+    <string name="call_settings" msgid="8152058602760531097">"通话设置"</string>
+    <string name="labelCF" msgid="2140733390678280443">"来电转接"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"通话限制"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM 通话设置"</string>
+    <string name="fdn" msgid="1080701466751913822">"固定拨号"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"输入 PIN2 码"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"删除固定拨号联系人"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"启用/停用 SIM 卡 PIN 码"</string>
+    <string name="change_pin" msgid="7219696137781706635">"更改 SIM 卡 PIN 码"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"无障碍"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"内置 SIP 通话功能"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"通话帐号"</string>
+    <string name="voicemail" msgid="9083239047687566742">"语音信箱"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"内置 SIM 卡"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"平板电脑信息"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"手机信息"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"设置无线装置频道模式"</string>
+</resources>
diff --git a/client/res/values-zh-rHK/strings.xml b/client/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..1cb5330
--- /dev/null
+++ b/client/res/values-zh-rHK/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"流動數據"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"手機服務"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"緊急撥號器"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN 清單"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"選取要匯入的聯絡人"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS 選項"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA 選項"</string>
+    <string name="call_settings" msgid="8152058602760531097">"通話設定"</string>
+    <string name="labelCF" msgid="2140733390678280443">"來電轉駁"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"通話限制"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM 通話設定"</string>
+    <string name="fdn" msgid="1080701466751913822">"固定撥號"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"輸入 PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"刪除固定撥號"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"啟用/停用 SIM PIN"</string>
+    <string name="change_pin" msgid="7219696137781706635">"變更 SIM 卡的 PIN"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"無障礙功能"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"內置 SIP 通話"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"通話帳戶"</string>
+    <string name="voicemail" msgid="9083239047687566742">"留言信箱"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"內置 SIM 卡"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"平板電腦資訊"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"手機資訊"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"設定無線電波段模式"</string>
+</resources>
diff --git a/client/res/values-zh-rTW/strings.xml b/client/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..a9a6b77
--- /dev/null
+++ b/client/res/values-zh-rTW/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"行動數據"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"電話服務"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"緊急撥號"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"固定撥號清單"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"選取要匯入的聯絡人"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS 選項"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA 選項"</string>
+    <string name="call_settings" msgid="8152058602760531097">"通話設定"</string>
+    <string name="labelCF" msgid="2140733390678280443">"來電轉接"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"通話限制"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM 通話設定"</string>
+    <string name="fdn" msgid="1080701466751913822">"固定撥號"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"輸入 PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"刪除固定撥號"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"啟用/停用 SIM 卡 PIN 碼"</string>
+    <string name="change_pin" msgid="7219696137781706635">"變更 SIM 卡 PIN 碼"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"無障礙設定"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"內建 SIP 通話功能"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"通話帳戶"</string>
+    <string name="voicemail" msgid="9083239047687566742">"語音信箱"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"內建 SIM 卡"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"平板電腦資訊"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"手機資訊"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"設定無線電頻帶模式"</string>
+</resources>
diff --git a/client/res/values-zu/strings.xml b/client/res/values-zu/strings.xml
new file mode 100644
index 0000000..679263e
--- /dev/null
+++ b/client/res/values-zu/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 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="4304896407232136185">"Idatha Yeselula"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Amasevisi wefoni"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Ukudayela Okuphuthumayo"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Uhlu lwe-FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Khetha othintana nabo ozobangenisa"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Okukhethwa kukho kwe-GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Okukhethwa kukho kwe-CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Izilungiselelo zekholi"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Ukudlulisa ikholi"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Ukuvimba ikholi"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Izilungiselelo zekholi ze-GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Izinombolo Zokudayela Okungaguquki"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Thayipha i-PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Susa othintana naye wokudayela okungaguquki"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Vumela/Vima i-PIN ye-SI&lt;M"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Shintsha i-PIN ye-SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Ukufinyeleleka"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"I-EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ukushaya okwakhelwe ngaphakathi kwe-SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Ama-akhawunti wokushaya"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Ivoyisimeyili"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Amakhadi we-SIM akhelwe ngaphakathi"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Ulwazi lethebhulethi"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Ulwazi lwefoni"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Isetha imodi yebhendi yerediyo"</string>
+</resources>
diff --git a/ecc/conversion_toolset_v1/gen_eccdata.sh b/ecc/conversion_toolset_v1/gen_eccdata.sh
index 1efac37..9fc0efc 100644
--- a/ecc/conversion_toolset_v1/gen_eccdata.sh
+++ b/ecc/conversion_toolset_v1/gen_eccdata.sh
@@ -19,8 +19,7 @@
 source "${LOCAL_TOOLSET_DIR}/env.sh"
 
 echo "Converting eccdata..."
-${ANDROID_BUILD_TOP}/prebuilts/tools/linux-x86_64/protoc/bin/protoc \
-  --encode=ecc.AllInfo proto/protobuf_ecc_data.proto \
+aprotoc --encode=ecc.AllInfo proto/protobuf_ecc_data.proto \
   < "${INPUT_DATA}" > "${RAW_DATA}"
 
 echo "Compressing eccdata..."
diff --git a/ecc/conversion_toolset_v1/proto/Android.bp b/ecc/conversion_toolset_v1/proto/Android.bp
index 7d6cce4..e1e0643 100644
--- a/ecc/conversion_toolset_v1/proto/Android.bp
+++ b/ecc/conversion_toolset_v1/proto/Android.bp
@@ -22,7 +22,7 @@
         ],
     },
     srcs: ["protobuf_ecc_data.proto"],
-    no_framework_libs: true,
+    sdk_version: "system_current",
     jarjar_rules: "jarjar-rules.txt",
     java_version: "1.8",
-}
\ No newline at end of file
+}
diff --git a/ecc/gen_eccdata.sh b/ecc/gen_eccdata.sh
index e4dd745..2888585 100755
--- a/ecc/gen_eccdata.sh
+++ b/ecc/gen_eccdata.sh
@@ -20,24 +20,8 @@
   exit 1
 fi
 
-case $(uname -s) in
-  Darwin)
-    KERNEL=darwin
-    ;;
-  Linux)
-    KERNEL=linux
-    ;;
-  *)
-    echo "Unknown kernel \"`uname -s`\"" 1>&2
-    exit 1
-    ;;
-esac
-
-read -d "" PROTOC_COMMAND << END || :
-${ANDROID_BUILD_TOP}/prebuilts/tools/${KERNEL}-x86_64/protoc/bin/protoc
-END
-if ! [ -x "${PROTOC_COMMAND}" ] ; then
-  echo "Missing ${PROTOC_COMMAND}." 1>&2
+if ! [ -x "$(which aprotoc)" ] ; then
+  echo "Missing aprotoc, build it with 'm aprotoc'." 1>&2
   exit 1
 fi
 
diff --git a/res/drawable/preference_background.xml b/res/drawable/preference_background.xml
index 19ca432..1ec90fb 100644
--- a/res/drawable/preference_background.xml
+++ b/res/drawable/preference_background.xml
@@ -21,7 +21,7 @@
         android:insetBottom="0dip">
 
     <shape android:shape="rectangle">
-        <solid android:color="@*android:color/background_material_light" />
+        <solid android:color="@color/background_material_light" />
     </shape>
 
 </inset>
diff --git a/res/drawable/progress_indeterminate_horizontal_material_trimmed.xml b/res/drawable/progress_indeterminate_horizontal_material_trimmed.xml
deleted file mode 100644
index 905dc55..0000000
--- a/res/drawable/progress_indeterminate_horizontal_material_trimmed.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-
-<!-- Variant of progress_indeterminate_horizontal_material in frameworks/base/core/res, which
-     draws the whole height of the progress bar instead having blank space above and below the
-     bar. -->
-<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:drawable="@drawable/vector_drawable_progress_indeterminate_horizontal_trimmed" >
-    <target
-        android:name="rect2_grp"
-        android:animation="@*android:anim/progress_indeterminate_horizontal_rect2" />
-    <target
-        android:name="rect1_grp"
-        android:animation="@*android:anim/progress_indeterminate_horizontal_rect1" />
-</animated-vector>
\ No newline at end of file
diff --git a/res/layout/band_mode.xml b/res/layout/band_mode.xml
new file mode 100644
index 0000000..b43dd1d
--- /dev/null
+++ b/res/layout/band_mode.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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:orientation="vertical"
+              android:padding="4dip"
+              android:gravity="center_horizontal"
+              android:layout_width="match_parent"
+              android:layout_height="wrap_content">
+
+    <ListView android:id="@+id/band"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:textSize="7sp">
+    </ListView>
+
+</LinearLayout>
diff --git a/res/layout/choose_network_progress_header.xml b/res/layout/choose_network_progress_header.xml
deleted file mode 100644
index 671c297..0000000
--- a/res/layout/choose_network_progress_header.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright (C) 2018 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
-    android:layout_width="match_parent"
-    android:layout_height="3dp"
-    xmlns:android="http://schemas.android.com/apk/res/android">
-    <View
-        android:id="@+id/progress_bar_background"
-        style="@style/TrimmedHorizontalProgressBar"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:background="?android:attr/colorSecondary" />
-    <ProgressBar
-        android:id="@+id/progress_bar_animation"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        style="@style/TrimmedHorizontalProgressBar"
-        android:indeterminate="true" />
-</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/emergency_dialer.xml b/res/layout/emergency_dialer.xml
index bea01fe..ab32c62 100644
--- a/res/layout/emergency_dialer.xml
+++ b/res/layout/emergency_dialer.xml
@@ -58,8 +58,6 @@
         android:accessibilityPaneTitle="@string/pane_title_emergency_dialpad"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:paddingLeft="36dp"
-        android:paddingRight="36dp"
         android:paddingBottom="@dimen/dialpad_bottom_padding"
         android:visibility="visible">
         <LinearLayout
@@ -73,6 +71,7 @@
                 android:id="@+id/emergency_action_group"
                 android:layout_height="64dp"
                 android:layout_width="match_parent"
+                android:layout_marginHorizontal="36dp"
                 android:layout_marginTop="16dp"
                 android:layout_marginBottom="24dp">
 
@@ -110,7 +109,7 @@
                     <View
                         android:layout_width="match_parent"
                         android:layout_height="match_parent"
-                        android:backgroundTint="#ffe53935"
+                        android:backgroundTint="#ffe32926"
                         android:focusable="false"
                         android:clickable="false"
                         style="?android:attr/buttonStyle"/>
@@ -155,8 +154,14 @@
                 </FrameLayout>
 
             </com.android.phone.EmergencyActionGroup>
-
+            <Space
+                android:id="@+id/emergency_info_dialpad_spacer"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"/>
             <include layout="@layout/dialpad_view_unthemed"
+                     android:layout_height="wrap_content"
+                     android:layout_width="match_parent"
                      android:theme="?attr/dialpadTheme" />
 
         </LinearLayout>
diff --git a/res/layout/pref_dialog_editpin.xml b/res/layout/pref_dialog_editpin.xml
deleted file mode 100644
index 94cdadf..0000000
--- a/res/layout/pref_dialog_editpin.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?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:orientation="vertical"
-    android:padding="?android:attr/dialogPreferredPadding">
-
-    <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/radio_info.xml b/res/layout/radio_info.xml
new file mode 100644
index 0000000..40c2e53
--- /dev/null
+++ b/res/layout/radio_info.xml
@@ -0,0 +1,414 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/* //device/apps/Settings/assets/res/any/layout/radio_info.xml
+**
+** Copyright 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.
+*/
+-->
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <LinearLayout style="@style/info_layout"
+        android:descendantFocusability="beforeDescendants"
+        android:focusableInTouchMode="true">
+
+        <!-- Phone index -->
+        <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/phone_index_label"
+                style="@style/info_label"
+                />
+
+        <Spinner android:id="@+id/phoneIndex"
+                 android:layout_width="match_parent"
+                 android:layout_height="wrap_content"
+                />
+
+        <!-- IMEI -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_imei_label" style="@style/info_label" />
+            <TextView android:id="@+id/imei" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Phone Number -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_phone_number_label" style="@style/info_label" />
+            <TextView android:id="@+id/number" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Subscription ID -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_subid" style="@style/info_label" />
+            <TextView android:id="@+id/subid" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Default data subscription -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_dds" style="@style/info_label" />
+            <TextView android:id="@+id/dds" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- IMSI -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_imsi_label" style="@style/info_label" />
+            <TextView android:id="@+id/imsi" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Network Identifier -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_current_network_label" style="@style/info_label" />
+            <TextView android:id="@+id/operator" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Roaming -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_roaming_label" style="@style/info_label" />
+            <TextView android:id="@+id/roaming" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Data Service Status -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_gprs_service_label" style="@style/info_label" />
+            <TextView android:id="@+id/gprs" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Data Network Type -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_data_network_type_label" style="@style/info_label" />
+            <TextView android:id="@+id/data_network" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Voice Service Status -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_gsm_service_label" style="@style/info_label" />
+            <TextView android:id="@+id/gsm" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Voice Network Type -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_voice_network_type_label" style="@style/info_label" />
+            <TextView android:id="@+id/voice_network" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Signal Strength -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_signal_strength_label" style="@style/info_label" />
+            <TextView android:id="@+id/dbm" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Link Bandwidth -->
+        <LinearLayout style="@style/RadioInfo_entry_layout" android:orientation="horizontal">
+            <TextView android:text="@string/radio_info_dl_kbps" style="@style/info_label" />
+            <TextView android:id="@+id/dl_kbps" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Link Bandwidth -->
+        <LinearLayout style="@style/RadioInfo_entry_layout" android:orientation="horizontal">
+            <TextView android:text="@string/radio_info_ul_kbps" style="@style/info_label" />
+            <TextView android:id="@+id/ul_kbps" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Physical Channel Config -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_phy_chan_config" style="@style/info_label" />
+            <TextView android:id="@+id/phy_chan_config" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- Preferred Network Type -->
+        <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/radio_info_set_perferred_label"
+                style="@style/info_label"
+                />
+
+        <Spinner android:id="@+id/preferredNetworkType"
+                 android:layout_width="match_parent"
+                 android:layout_height="wrap_content"
+                />
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- Radio Power -->
+        <Switch android:id="@+id/radio_power"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/radio_info_radio_power"/>
+
+        <!-- VoLTE provisioned -->
+        <Switch android:id="@+id/volte_provisioned_switch"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/volte_provisioned_switch_string"/>
+
+        <!-- VT provisioned -->
+        <Switch android:id="@+id/vt_provisioned_switch"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/vt_provisioned_switch_string"/>
+
+        <!-- Wifi Calling provisioned -->
+        <Switch android:id="@+id/wfc_provisioned_switch"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/wfc_provisioned_switch_string"/>
+
+        <!-- EAB/Presence provisioned -->
+        <Switch android:id="@+id/eab_provisioned_switch"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/eab_provisioned_switch_string"/>
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- Enable/Disable CBRS data -->
+        <Switch android:id="@+id/cbrs_data_switch"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/cbrs_data_switch_string" />
+
+        <!-- Switch between SSSS(single sim single standby) and DSDS(dual sim dual standby). -->
+        <Switch android:id="@+id/dsds_switch"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/dsds_switch_string" />
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- Ping stats -->
+        <Button android:id="@+id/ping_test"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/ping_test_label"
+                />
+ 
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_ping_hostname_v4" style="@style/info_label" />
+            <TextView android:id="@+id/pingHostnameV4" style="@style/info_value" />
+        </LinearLayout>
+
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_ping_hostname_v6" style="@style/info_label" />
+            <TextView android:id="@+id/pingHostnameV6" style="@style/info_value" />
+        </LinearLayout>
+
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_http_client_test" style="@style/info_label" />
+            <TextView android:id="@+id/httpClientTest" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- PPP Sent -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_ppp_sent_label"
+                style="@style/info_label" />
+            <TextView android:id="@+id/sent" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- PPP Received -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_ppp_received_label"
+                style="@style/info_label" />
+            <TextView android:id="@+id/received" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- PPP Sent since last received -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_ppp_resets_label"
+                style="@style/info_label" />
+            <TextView android:id="@+id/sentSinceReceived" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- Call Status -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_call_status_label" style="@style/info_label" />
+            <TextView android:id="@+id/call" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Message Waiting Indicator -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_message_waiting_label" style="@style/info_label" />
+            <TextView android:id="@+id/mwi" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Call Forwarding Indicator -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_call_redirect_label" style="@style/info_label" />
+            <TextView android:id="@+id/cfi" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- CellInfoListRate Selection -->
+        <!-- Location -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_signal_location_label" style="@style/info_label" />
+            <TextView android:id="@+id/location" style="@style/info_value" />
+        </LinearLayout>
+
+        <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/radio_info_cell_info_refresh_rate"
+                style="@style/info_label"
+                />
+
+        <Spinner android:id="@+id/cell_info_rate_select"
+                 android:layout_width="match_parent"
+                 android:layout_height="wrap_content"
+                />
+
+        <!-- CellInfo -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_cellinfo_label"
+                      style="@style/info_label" />
+        </LinearLayout>
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:id="@+id/cellinfo"
+                      style="@style/info_value"
+                      android:minHeight="300dip"
+                      android:textSize="12sp" />
+        </LinearLayout>
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- Launch OEM-specific Info/Settings Activity (if any) -->
+        <!-- Carrier Provisioning -->
+        <LinearLayout style="@style/RadioInfo_entry_layout"
+                      android:orientation="horizontal" >
+            <Button android:id="@+id/carrier_provisioning"
+                    android:layout_marginTop="8dip"
+                    android:layout_weight="1"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:text="@string/carrier_provisioning"
+                    android:textSize="14sp"/>
+            <Button android:id="@+id/trigger_carrier_provisioning"
+                    android:layout_marginTop="8dip"
+                    android:layout_weight="1"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:text="@string/trigger_carrier_provisioning"
+                    android:textSize="14sp"/>
+            <Button android:id="@+id/oem_info"
+                    android:layout_marginTop="8dip"
+                    android:layout_weight="1"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:text="@string/oem_radio_info_label"
+                    android:textSize="14sp"/>
+        </LinearLayout>
+
+        <!-- SMSC -->
+        <RelativeLayout android:layout_width="match_parent"
+                        android:layout_height="wrap_content">
+            <TextView android:id="@+id/smsc_label"
+                      android:text="@string/radio_info_smsc_label"
+                      android:layout_alignBaseline="@+id/update_smsc"
+                      style="@style/info_label" />
+            <Button android:id="@+id/refresh_smsc"
+                    android:textSize="14sp"
+                    android:layout_marginTop="8dip"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/radio_info_smsc_refresh_label"
+                    android:layout_alignParentEnd="true"
+                    />
+            <Button android:id="@+id/update_smsc"
+                    android:textSize="14sp"
+                    android:layout_marginTop="8dip"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/radio_info_smsc_update_label"
+                    android:layout_toStartOf="@+id/refresh_smsc"
+                    android:layout_alignBaseline="@+id/refresh_smsc"
+                    />
+            <EditText android:id="@+id/smsc"
+                      style="@style/form_value"
+                      android:layout_alignBaseline="@+id/refresh_smsc"
+                      android:layout_toStartOf="@id/update_smsc"
+                      android:layout_toEndOf="@id/smsc_label" />
+        </RelativeLayout>
+
+        <!-- Test setting to ignore bad DNS, useful in lab environments -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <Button android:id="@+id/dns_check_toggle"
+                    android:textSize="14sp"
+                    android:layout_marginTop="8dip"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/radio_info_toggle_dns_check_label"
+                    />
+            <TextView android:id="@+id/dnsCheckState" style="@style/info_value" />
+        </LinearLayout>
+
+
+    </LinearLayout>
+</ScrollView>
diff --git a/res/values-af/config.xml b/res/values-af/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-af/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 7794f56..65a380d 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privaat nommer"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefoonhokkie"</string>
     <string name="onHold" msgid="6132725550015899006">"Hou aan"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>-boodskap"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Diensverskafferboodskap"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-kode begin"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-kode loop tans…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-kode gekanselleer"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Net NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Voorkeurnetwerk-modus: WCDMA verkies"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Voorkeurnetwerk-modus: net GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Voorkeurnetwerk-modus: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Voorkeurnetwerk-modus: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Voorkeurnetwerk-modus: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Voorkeurnetwerkmodus: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Voorkeurnetwerk-modus: Globaal"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Voorkeurnetwerk-modus: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Voorkeurnetwerkmodus: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Voorkeurnetwerkmodus: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Voorkeurnetwerkmodus: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Voorkeurnetwerkmodus: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Voorkeurnetwerkmodus: net NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Voorkeurnetwerkmodus: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Voorkeurnetwerkmodus: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Voorkeurnetwerkmodus: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Voorkeurnetwerkmodus: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Voorkeurnetwerkmodus: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Voorkeurnetwerkmodus: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Voorkeurnetwerkmodus: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Voorkeurnetwerkmodus: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Voorkeurnetwerkmodus: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Voorkeurnetwerkmodus: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Oproepe"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Netwerk"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Verbeterde 4G LTE-modus"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multikategorie"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multikategorie geaktiveer"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multikategorie gedeaktiveer"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (aanbeveel)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (aanbeveel)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (aanbeveel)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globaal"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Verwyder belbeperking-nommer…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Belbeperking-nommer uitgevee."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN is nie opgedateer nie omdat jy \'n verkeerde PIN ingevoer het."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN is nie opgedateer nie, omdat die getal 20 syfers oorskry."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN is nie opgedateer nie, omdat die getal <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>syfers oorskry."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN is nie bygewerk nie. Die PIN2 was verkeerd of die foonnommer is verwerp."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN-bewerking het misluk."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lees tans van SIM-kaart af…"</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Kan nie bel nie. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is nie \'n noodnommer nie."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Kan nie bel nie. Skakel \'n noodnommer."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Noodoproepe is nie bekikbaar nie"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Net die eienaar van die toestel kan PIN-/PUK-kodes invoer."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polisie"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulans"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Brand"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Intydse teksoproep (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Laat boodskappe binne \'n stemoproep toe"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT help bellers wat doof is, hardhorend is, \'n spraakgebrek het of meer as net stem benodig.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Kom meer te wete&lt;/a&gt;\n       &lt;br&amp;gtlt;br&gt; - RTT-oproepe word as \'n boodskaptranskripsie gestoor\n       &lt;br&amp;gt - RTT is nie vir video-oproepe beskikbaar nie"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Let wel: RTT is nie beskikbaar terwyl jy swerf nie"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY af"</item>
     <item msgid="1449091874731375214">"TTY vol"</item>
@@ -611,6 +639,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nee"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Maak toe"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Die foon is in noodterugbelmodus"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Tot <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Die foon sal in noodterugbelmodus wees vir <xliff:g id="COUNT_1">%s</xliff:g> minute.\nWil jy nou uitgaan?</item>
+      <item quantity="one">Die foon sal in noodterugbelmodus wees vir <xliff:g id="COUNT_0">%s</xliff:g> minuut.\nWil jy nou uitgaan?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Diens"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Opstelling"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nie gestel nie&gt;"</string>
@@ -750,7 +784,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Oproepstuiting is gedeaktiveer"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Verander wagwoord"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Verander oproepstuitingwagwoord"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Kan nie oproepstuitingwagwoord verander nie"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Kan nie oproepstuitingwagwoord verander nie"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Wagwoorde nie dieselfde nie"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Voer \'n wagwoord met 4 syfers in"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Wagwoord verander"</string>
@@ -759,7 +793,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Bevestig wagwoord"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Voer wagwoord in"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Oproepstuitinginstellings"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deaktiveer alle oproepstuitinginstellings?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Netwerk is besig. Probeer asseblief later weer bel."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Netwerk is vol. Kontak jou selfoonoperateur vir bystand."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Oproep is afgelei."</string>
@@ -789,4 +822,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Om <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> te gebruik, maak seker dat mobiele data vir SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> aangeskakel is. Jy kan dit in selnetwerk-instellings verander."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Om <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> te gebruik, maak seker dat mobiele data en dataswerwing vir SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> aangeskakel is. Jy kan dit in selnetwerk-instellings verander."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Weier"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Aktiveer dataverbinding"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Deaktiveer dataverbinding"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-voorbereid"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video-oproepe is opgestel"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi-oproepe is opgestel"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/teenwoordigheid is opgestel"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs-data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Aktiveer DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Herbegin toestel?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Jy moet jou toestel herbegin om dié instelling te verander."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Herbegin"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Kanselleer"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobieleradiokrag"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Bekyk SIM-adresboek"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Kyk na vaste skakelnommers"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Bekyk skakeldiensnommers"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-diensstatus"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Geregistreer"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Nie geregistreer nie"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Beskikbaar"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nie beskikbaar nie"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-registrasie: <xliff:g id="STATUS">%1$s</xliff:g>\nStem oor LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nStem oor Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo-oproepe: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-koppelvlak: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In diens"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Diens is nie beskikbaar nie"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Net noodoproepe"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio is af"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Swerwing"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Swerf nie"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Luier"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Lui tans"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Besig met oproep"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Ontkoppel"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Koppel tans"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Gekoppel"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Opgeskort"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Onbekend"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"grepe"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Huidige sub-ID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Sub-ID van verstekdata-SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Aflaaibandwydte (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Oplaaibandwydte (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Selligginginligting (opgeskort):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fisieke LTE-kanaalopstelling:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Herlaaikoers van selinligting:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alle selmetingsinligting:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datadiens:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Swerwing:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Oproepherleiding:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Aantal PPP-terugstellings sedert herlaai:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Huidige netwerk:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data ontvang:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Stemdiens:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Seinsterkte:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Stemoproepstatus:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data gestuur:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Boodskap wag:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Foonnommer:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Kies radioband"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Stemnetwerktipe:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Datanetwerktipe:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Kies foonindeks"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Stel voorkeurnetwerktipe:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Pieng gasheernaam(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Pieng gasheernaam(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-kliënttoets:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Doen piengtoets"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Dateer op"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Herlaai"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Wissel DNS-kontrole"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-spesifieke inligting/instellings"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Stel radiobandmodus"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Laai tans bandlys …"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Stel"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Onsuksesvol"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Suksesvol"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tabletinligting"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Fooninligting"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Diensverskaffervoorsiening-inligting"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger-diensverskaffervoorsiening"</string>
 </resources>
diff --git a/res/values-am/config.xml b/res/values-am/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-am/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 5b7c8e3..d8b8312 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"የግል ቁጥር"</string>
     <string name="payphone" msgid="7936735771836716941">"የሕዝብ ስልክ"</string>
     <string name="onHold" msgid="6132725550015899006">"ያዝናቆይ"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> መልዕክት"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"የአገልግሎት አቅራቢ መልዕክት"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"የMMI ኮድ ጀምሯል"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"የUSSD ኮድ አሂድ ላይ ነው..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"የMMI ኮድ ቀርቷል"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR ብቻ"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ተመራጭ የአውታረመረብ ፡WCDMA ሁነታ ተመራጭ"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ተመራጭ የአውታረመረብ ፡GSM ሁነታ ብቻ"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ተመራጭ የአውታረመረብ ሁኔታ፡ LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ተመራጭ የአውታረመረብ ሁኔታ: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ተመራጭ የአውታረመረብ ሁኔታ ፡ CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"የተመረጠው የአውታረ መረብ ሁነታ፦ LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ተመራጭ የአውታረመረብ ፡ አለምአቀፍ"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ተመራጭ የአውታረመረብ ሁኔታ፡ LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ተመራጭ የአውታረ መረብ ሁነታ፦ LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"የተመረጠው የአውታረ መረብ ሁነታ፦ LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"የተመረጠው የአውታረ መረብ ሁነታ፦ CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"የተመረጠው የአውታረ መረብ ሁነታ፦ LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR ብቻ"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"በመደወል ላይ"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"አውታረ መረብ"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"የተሻሻለ የ4ጂ LTE ሁነታ"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ብዙ ምድብ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"ብዙ ምድብ ነቅቷል"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ብዙ-ምድብ አልነቃም"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (የሚመከር)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (የሚመከር)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (የሚመከር)"</string>
     <string name="network_global" msgid="3289646154407617631">"አለምአቀፍ"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"በቋሚ መደወያ ቁጥር በመሰረዝ ላይ..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ቋሚ መደወያ ቁጥር ተሰርዟል።"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"የተሳሳተ ፒን ስላስገባህ FDN አልዘመነም፡፡"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN አልተደገፈም ነበር ምክንያቱም ቁጥሩ ከ20 አኃዞች ያንሳል።"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN ቁጥሩ ከ<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> አሃዞች ስለሚበልጥ አልዘመነም።"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN አልዘመነም። ፒን2 ትክክል አልነበረም፣ ወይም የስልክ ቁጥሩ ተቀባይነት አላገኘም።"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN ክወና አልተሳካም!"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"ከSIM ካርድ ላይ በማንበብ ላይ..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"መደወል አልተቻለም። <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> የአስቸኳይ አደጋ ቁጥር አይደለም።"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"መደወል አልተቻለም። ወደ የአስቸኳይ አደጋ ቁጥር ይደውሉ።"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"የአደጋ ጊዜ ጥሪ ማድረግ አይገኝም"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"የመሣሪያው ባለቤት ብቻ ፒን/PUK ኮዶችን ማስገባት ይችላል።"</string>
     <string name="police_type_description" msgid="2819533883972081757">"ፖሊስ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"አምቡላንስ"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"እሳት"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"ቅጽበታዊ ጽሁፍ (አርቲቲ) ጥሪ"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"በድምጽ ጥሪ ውስጥ መልዕክት መላክን ፍቀድ"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"አርቲቲ መስማት የተሳናቸው፣ የመስማት ችግር ያለባቸው፣ መስማት ያሚያዳግታቸው እና የንግግር አካል ጉዳት ያለባቸውን ወይም ከድምጽ በላይ የሚያስፈልጋቸውን ደዋዮች ይረዳል።&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;የበለጠ ለመረዳት&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - አርቲቲ ጥሪዎች እንደ የመልዕክት ጽሁፍ ግልባጭ ይቀመጣሉ\n       &lt;br&gt; - አርቲቲ ለቪዲዮ ጥሪዎች አይገኝም"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ማስታወሻ፦ አርቲቲ በዝውውር ላይ እያሉ አይገኝም።"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ጠፍቷል"</item>
     <item msgid="1449091874731375214">"TTY ሙሉ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"አዎ"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"አይ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"አሰናብት"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ስልኩ የአደጋ ጊዜ ተዘዋዋሪ ጥሪ ሁነታ ውስጥ ነው ያለው።"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"እስከ <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">ስልኩ ለ<xliff:g id="COUNT_1">%s</xliff:g> ደቂቃዎች የአደጋ ጊዜ ተዘዋዋሪ ጥሪ ሁነታ ውስጥ ይሆናል።\nአሁን መውጣት ይፈልጋሉ?</item>
+      <item quantity="other">ስልኩ ለ<xliff:g id="COUNT_1">%s</xliff:g> ደቂቃዎች የአደጋ ጊዜ ተዘዋዋሪ ጥሪ ሁነታ ውስጥ ይሆናል።\nአሁን መውጣት ይፈልጋሉ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"አገልግሎት"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"አዋቅር"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;አልተዘጋጀም &gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ጥሪ ክልከላ ተሰናክሏል"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"የይለፍ ቃል ለውጥ"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"የጥሪ ክልከላ የይለፍ ቃልን ለውጥ"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"የጥሪ ክልከላ የይለፍ ቃልን መለወጥ አይቻልም።"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"የጥሪ ክልከላ የይለፍ ቃልን መለወጥ አይቻልም"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"የይለፍ ቃሎችዎ አልተዛመዱም"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 ቁጥሮች ያሉት የይለፍ ቃል ያስገቡ"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"የይለፍ ቃል ተለውጧል"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"የይለፍ ቃልን ያረጋግጡ"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"የይለፍ ቃል አስገባ"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"የጥሪ ክልከላ ቅንብሮች"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"ሁሉንም የጥሪ ክልከላ ቅንብሮች አሰናክል?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"አውታረመረብ ተጨናንቋል። እባክዎ ጥሪዎን በኋላ እንደገና ይሞክሩ።"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"አውታረመረብ ተጨናንቋል ለእገዛ የሞባይል አከናዋኝዎን ያነጋግሩ"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"ጥሪ አቅጣጫውን ቀይሯል።"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ን ለመጠቀም ሞባይል ውሂብ ለ ሲም <xliff:g id="SIM_NUMBER">%2$d</xliff:g> መብራቱን ያረጋግጡ። ይህን በሞባይል አውታረመረብ ቅንብሮች ውስጥ መለወጥ ይችላሉ።"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ን ለመጠቀም፣ ሞባይል ውሂብ እና ይውሂብ ዝውውር ለሲም <xliff:g id="SIM_NUMBER">%2$d</xliff:g> መብራታቸውን ያረጋግጡ። እነዚህን በ ሞባይል አውታረመረብ ቅንብሮች ውስጥ መለወጥ ይችላሉ።"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"አሰናብት"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"የውሂብ ግንኙነትን አንቃ"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"የውሂብ ግንኙነትን አሰናክል"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"በVoLTE የቀረበ"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"የቪዲዮ ጥሪ ቀርቧል"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"የWifi ጥሪ ቀርቧል"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"የEAB/ተገኝነት ቀርቧል"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"የCbrs ውሂብ"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDSን አንቃ"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"መሣሪያው ዳግም ይጀምር?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ይህን ቅንብር ለመለወጥ መሣሪያዎትን ዳግም ማስጀመር ያስፈልግዎታል።"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ዳግም አስጀምር"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ይቅር"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"የሞባይል ሬዲዮ ኃይል"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"የሲም አድራሻ ደብተር አሳይ"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"በቋሚነት የሚደወልባቸው ቁጥሮች"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"የአገልግሎት መደወያ ቁጥሮችን ተመልከት"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS አገልግሎት ሁነታ"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS ሁነታ"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ተመዝግቧል"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"አልተመዘገበም"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"የሚገኙ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"አይገኝም"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"የIMS ምዝገባ፦ <xliff:g id="STATUS">%1$s</xliff:g>\n የድምጽ ቅጂ LTE፡ <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nየድምጽ ቅጂ WiFi፡ <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nየቪድዮ ጥሪ፦ <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT በይነገጽ፡ <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"በአገልግሎት ውስጥ"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"ከአገልግሎት ውጪ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"የአደጋ ጊዜ ጥሪዎች ብቻ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ሬዲዮ ጠፍቷል"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"በማዘዋወር ላይ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"እየተዘዋወረ አይደለም"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"ሥራ ፈት"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"በመጥራት ላይ"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"ጥሪ በሂደት ላይ"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ተቋርጧል"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"በመገናኘት ላይ"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"ተገናኝቷል"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"ታግዷል"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"ያልታወቀ"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ባይቶች"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"የአሁኑ subId፡"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"የነባሪ ውሂብ ሲም SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL መተላለፊያ ይዘት (ኪቢ/ሴ)፡"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"የUL መተላለፊያ ይዘት (ኪቢ/ሴ)፡"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"የሕዋስ የአካባቢ መረጃ (የተቋረጠ)፦"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"የLTE አካላዊ ሰርጥ ውቅረት:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"የሕዋስ መረጃ እድሳት ፍጥነት፡"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ሁሉም የሕዋስ መለኪያ መረጃ፡"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"የውሂብ አገልግሎት:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"በማዛወር ላይ:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ጥሪ ተዛውሯል:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ከተነሳ ጀምሮ የ PPP ድጋሚ ጅምር ብዛት"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"የአሁኑ አውታረ መረብ፡"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ውሂብ ተቀብሏል:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"የድምፅ አገልግሎት:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"የሲግናል ጥንካሬ:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"የድምጽ ጥሪ ሁኔታ፡"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"የተላከ ውሂብ፦"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"መልዕክት በመጠበቅ ላይ፡"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ስልክ ቁጥር:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"የሬዲዮ ባንድ ይምረጡ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"የድምፅ የአውታረ መረብ ዓይነት፡"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"የውሂብ አውታረ መረብ ዓይነት፡"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"የስልክ መረጃ ጠቋሚ ይምረጡ"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ተመራጭ የአውታረ መረብ አይነት ያዋቅሩ፡"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ፒንግ ስመ ከዳም(www.google.com) IPv4፦"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ፒንግ ስመ ካዳም(www.google.com) IPv6፡"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"የኤችቲቲፒ ደንበኛ ሙከራ:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"የፒንግ ሙከራን አስሂድ"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"አዘምን"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"አድስ"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"የDNS ፍተሻን ቀያይር"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-የተወሰነ መረጃ/ቅንብሮች"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"የሬዲዮ ባንድ ሁነታን ያቀናጁ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"የባንድ ዝርዝርን በመጫን ላይ…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"አዋቅር"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"አልተሳካም"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"ስኬታማ"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"የጡባዊ መረጃ"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"የስልክ መረጃ"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"የአገልግሎት አቅራቢ አቅርቦት መረጃ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"የቀስቅሴ አገልግሎት አቅራቢ አቅርቦት"</string>
 </resources>
diff --git a/res/values-ar/config.xml b/res/values-ar/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ar/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 63fb36d..ccef876 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"رقم خاص"</string>
     <string name="payphone" msgid="7936735771836716941">"هاتف يعمل بالعملة"</string>
     <string name="onHold" msgid="6132725550015899006">"معلقة"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"رسالة <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"رسالة مشغِّل شبكة الجوَّال"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"‏بدأ رمز MMI"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"‏جارٍ تشغيل رمز USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"‏تم إلغاء رمز MMI"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"‏NR فقط"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"‏وضع الشبكة المفضل: تم تفضيل WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"‏وضع الشبكة المفضل: GSM فقط"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"‏وضع الشبكة المفضل: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"‏وضع الشبكة المفضل: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"‏وضع الشبكة المفضل: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"‏وضع الشبكة المُفضَّل: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"وضع الشبكة المفضل: عام"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"‏وضع الشبكة المفضل: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"‏وضع الشبكة المفضل: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"‏وضع الشبكة المفضل: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"‏وضع الشبكة المفضل: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"‏وضع الشبكة المفضل: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"‏وضع الشبكة المُفضَّل: NR فقط"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"‏وضع الشبكة المُفضَّل: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"‏وضع الشبكة المُفضَّل: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"‏وضع الشبكة المُفضَّل: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"‏وضع الشبكة المُفضَّل: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"‏وضع الشبكة المُفضَّل: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"‏وضع الشبكة المُفضَّل: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"‏وضع الشبكة المُفضَّل: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"‏وضع الشبكة المُفضَّل: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"‏وضع الشبكة المُفضَّل: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"‏وضع الشبكة المُفضَّل: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"الاتصال"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"الشبكة"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"‏وضع 4G LTE المحسّن"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"متعددة الفئات"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"تم تفعيل المتعددة الفئات"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"تم إيقاف متعددة الفئات"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (موصى به)"</string>
     <string name="network_lte" msgid="7206879277095094280">"‏LTE (مستحسن)"</string>
     <string name="network_4G" msgid="6800527815504223913">"الجيل الرابع (مستحسن)"</string>
     <string name="network_global" msgid="3289646154407617631">"عام"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"جارٍ حذف رقم الاتصال الثابت..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"تم حذف رقم الاتصال الثابت."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"‏لم يتم تحديث FDN لأنك كتبت رقم تعريف شخصي غير صحيح."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"‏لم يتم تحديث FDN نظرًا لأن الرقم يتجاوز طوله 20 رقمًا."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"‏لم يتم تحديث FDN نظرًا لأن الرقم يتجاوز طوله <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> رقمًا."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"‏لم يتم تحديث FDN. رقم PIN2 غير صحيح، أو تم رفض رقم الهاتف."</string>
     <string name="fdn_failed" msgid="216592346853420250">"‏تعذّر إتمام عملية FDN!"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"‏جارٍ القراءة من شريحة SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"يتعذر الاتصال. لا يعد <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> رقم طوارئ."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"يتعذر الاتصال. يمكنك طلب رقم طوارئ."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"مكالمة الطوارئ غير متوفرة"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"‏يمكن لمالك الجهاز فقط إدخال رمزَي PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"شرطة"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"سيارة إسعاف"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"حريق"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"مكالمة باستخدام الميزة \"مراسلة نصية في الوقت الفعلي\""</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"السماح بالمراسلة داخل مكالمة صوتية"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"‏تعمل الميزة \"مراسلة نصية في الوقت الفعلي\" على مساعدة المتصلين الذين يعانون من فقدان حاسة السمع أو من ضعف في السمع أو ليست لديهم القدرة على التحدث أو يحتاجون إلى ما هو أكثر من الصوت فقط.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;معرفة المزيد&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - يتم حفظ المكالمات التي تتم عن طريق الميزة \"مراسلة نصية في الوقت الفعلي\" كنص رسالة \n       &lt;br&gt; - لا تتوفر الميزة \"مراسلة نصية في الوقت الفعلي\" لمكالمات الفيديو"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ملاحظة: لا تتوفّر ميزة \"المراسلة النصية في الوقت الفعلي\" أثناء التجوال"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"‏TTY غير مفعّل"</item>
     <item msgid="1449091874731375214">"‏TTY مكتمل"</item>
@@ -617,6 +645,16 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"نعم"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"لا"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"استبعاد"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"الهاتف في وضع معاودة الاتصال بالطوارئ."</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"حتى <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="zero">سيكون الهاتف في وضع معاودة الاتصال بالطوارئ لمدة <xliff:g id="COUNT_1">%s</xliff:g> دقيقة.\nهل تريد الخروج الآن؟</item>
+      <item quantity="two">سيكون الهاتف في وضع معاودة الاتصال بالطوارئ لمدة دقيقتين (<xliff:g id="COUNT_1">%s</xliff:g>).\nهل تريد الخروج الآن؟</item>
+      <item quantity="few">سيكون الهاتف في وضع معاودة الاتصال بالطوارئ لمدة <xliff:g id="COUNT_1">%s</xliff:g> دقائق.\nهل تريد الخروج الآن؟</item>
+      <item quantity="many">سيكون الهاتف في وضع معاودة الاتصال بالطوارئ لمدة <xliff:g id="COUNT_1">%s</xliff:g> دقيقة.\nهل تريد الخروج الآن؟</item>
+      <item quantity="other">سيكون الهاتف في وضع معاودة الاتصال بالطوارئ لمدة <xliff:g id="COUNT_1">%s</xliff:g> دقيقة.\nهل تريد الخروج الآن؟</item>
+      <item quantity="one">سيكون الهاتف في وضع معاودة الاتصال بالطوارئ لمدة دقيقة (<xliff:g id="COUNT_0">%s</xliff:g>).\nهل تريد الخروج الآن؟</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"الخدمة"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"الإعداد"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"‏&lt;لم يتم التعيين&gt;"</string>
@@ -756,7 +794,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"تم إيقاف منع الاتصال"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"تغيير كلمة المرور"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"تغيير كلمة مرور منع الاتصال"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"يتعذر تغيير كلمة مرور منع الاتصال."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"يتعذّر تغيير كلمة مرور منع الاتصال."</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"كلمتا المرور غير متطابقتين"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"إدخال كلمة مرور مكونة من 4 أرقام"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"تم تغيير كلمة المرور"</string>
@@ -765,7 +803,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"تأكيد كلمة المرور"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"إدخال كلمة المرور"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"إعدادات منع الاتصال"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"هل تريد إيقاف كل إعدادات منع الاتصال؟"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"الشبكة مشغولة. يُرجى إعادة الاتّصال في وقتٍ لاحق."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"الشبكة مزدحمة. اتصل بمشغّل شبكة الجوّال للحصول على مساعدة."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"تم انحراف المكالمة."</string>
@@ -795,4 +832,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"‏لاستخدام <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>، تأكّد من تفعيل بيانات الجوّال لشريحة SIM رقم <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. يمكنك تغيير هذا الإعداد في إعدادات شبكة الجوّال."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"‏لاستخدام <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>، تأكّد من تفعيل بيانات الجوّال وتجوال البيانات لشريحة SIM رقم <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. يمكنك تغيير هذين الإعدادين في إعدادات شبكة الجوّال."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"رفض"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"تفعيل اتصال البيانات"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"إيقاف اتصال البيانات"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"‏تم توفير VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"تم توفير مكالمات الفيديو"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"‏تم توفير اتصال Wifi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"‏تم توفير EAB/الحضور"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"‏بيانات CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"‏تفعيل DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"هل تريد إعادة تشغيل الجهاز؟"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"عليك إعادة تشغيل جهازك لتغيير هذا الإعداد."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"إعادة التشغيل"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"إلغاء"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"طاقة اللاسلكي للجوّال"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"‏عرض دفتر عناوين SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"عرض أرقام الطلب الثابت"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"عرض أرقام طلب الخدمة"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"حالة خدمة الرسائل الفورية"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"حالة الرسائل الفورية"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"مسجّل"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"غير مسجّل"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"متاح"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"الميزة غير متاحة"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"‏تسجيل الرسائل الفورية: <xliff:g id="STATUS">%1$s</xliff:g>\nالصوت عبر LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nالصوت عبر WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nمكالمات الفيديو: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nواجهة UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"قيد الخدمة"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"خارج نطاق الخدمة"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"مكالمات الطوارئ فقط"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"تم إيقاف اللاسلكي"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"التجوال"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ليس هناك تجوال"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"خامل"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"جارٍ استصدار الرنين…"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"الاتصال قيد التقدّم"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"غير متصل"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"جارٍ الاتصال…"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"متّصل بالإنترنت"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"معلّق"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"غير معروف"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"الحزم"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"بايت"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"بالديسيبل"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"المعرّف الفرعي الحالي:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"‏المعرّف الفرعي لشريحة SIM التلقائية للبيانات:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"‏معدّل نقل بيانات DL (كيلوبت في الثانية):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"‏معدّل نقل بيانات UL (كيلوبت في الثانية):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"معلومات الموقع الخلوية (تم الإيقاف):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"‏ضبط قناة LTE Physical:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"معدّل إعادة تحميل المعلومات الخلوية:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"جميع معلومات القياس الخلوية:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"خدمة البيانات:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"التجوال:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"إعادة توجيه الاتصال:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"‏عدد مرات إعادة ضبط PPP منذ التشغيل:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"الشبكة الحالية:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"البيانات المُستلَمة:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"الخدمة الصوتية:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"قوة الإشارة:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"حالة المكالمة الصوتية:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"البيانات المُرسَلة:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"انتظار الرسائل:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"رقم الهاتف:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"تحديد النطاق اللاسلكي"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"نوع الشبكة الصوتية:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"نوع شبكة البيانات:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"اختيار فهرس الهاتف"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"تحديد نوع الشبكة المفضّل:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"‏فحص اتصال اسم المضيف (www.google.com) عبر IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"‏فحص اتصال اسم المضيف (www.google.com) عبر IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"‏اختبار عميل HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"تشغيل اختبار فحص الاتصال"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"تعديل"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"إعادة التحميل"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"تبديل فحص نظام أسماء النطاقات"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"المعلومات/الإعدادات المتعلّقة بالمصنّع الأصلي للجهاز"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"تحديد وضع النطاق اللاسلكي"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"جارٍ تحميل قائمة النطاقات…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"ضبط"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"لم يتم بنجاح"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"تم بنجاح"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"معلومات الجهاز اللوحي"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"معلومات الهاتف"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"معلومات توفير خدمة مشغّل شبكة الجوّال"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"توفير خدمة مشغّل شبكة الجوّال"</string>
 </resources>
diff --git a/res/values-as/config.xml b/res/values-as/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-as/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 519be46..873030b 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ব্যক্তিগত নম্বৰ"</string>
     <string name="payphone" msgid="7936735771836716941">"পে\'ফ\'ন"</string>
     <string name="onHold" msgid="6132725550015899006">"হ\'ল্ডত আছে"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> বাৰ্তা"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"বাহকৰ বাৰ্তা"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI ক\'ড আৰম্ভ কৰা হ’ল"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD ক\'ড চলি আছে…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI ক\'ড বাতিল কৰা হ’ল"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"কেৱল NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: WCDMA অগ্ৰাধিকাৰ দিয়া হৈছে"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: GSM মাত্ৰ"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: গোলকীয়"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: কেৱল NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"অগ্ৰাধিকাৰপ্ৰাপ্ত নেটৱৰ্ক ম’ড: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"কলিং"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"নেটৱৰ্ক"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"পৰিৱৰ্ধিত 4G এলটিই ম’ড"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"বহু-বৰ্গীয়"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"বহু-বৰ্গীয় সক্ষম কৰা হ’ল"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"বহু-বৰ্গীয় অক্ষম কৰা হ’ল"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (চুপাৰিছ কৰা)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (অনুমোদিত)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (অনুমোদিত)"</string>
     <string name="network_global" msgid="3289646154407617631">"গোলকীয়"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ফিক্সড্ ডায়েলিং নম্বৰ মচি থকা হৈছে…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ফিক্সড্ ডায়েলিং নম্বৰ মচা হ’ল।"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"আপুনি ভুল পিন টাইপ কৰা কাৰণে FDN আপডে’ট কৰা নহ\'ল।"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN আপডে’ট কৰা নহ\'ল কাৰণ নম্বৰটো ২০টা অংকতকৈ বেছি হৈছে।"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"নম্বৰটোত<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>টাতকৈ বেছি অংক আছে বাবে FDN আপডে\'ট নহ\'ল।"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN আপডে’ট কৰা নহ\'ল। PIN2টো ভুল আছিল বা ফ\'নটো নম্বৰটো নাকচ কৰা হৈছে।"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN অপাৰেশ্বন বিফল হ’ল।"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"ছিম কাৰ্ডৰ পৰা পঢ়ি থকা হৈছে…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"কল কৰিব নোৱাৰি। <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> এইটো জৰুৰীকালীন নম্বৰ নহয়।"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"কল কৰিব নোৱাৰি। জৰুৰী নম্বৰ এটা ডায়েল কৰক।"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"জৰুৰীকালীন কলিঙৰ সুবিধা উপলব্ধ নহয়"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"কেৱল ডিভাইচটোৰ গৰাকীয়েহে PIN/PUK ক’ডসমূহ দিব পাৰে।"</string>
     <string name="police_type_description" msgid="2819533883972081757">"পুলিচ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"এম্বুলেঞ্চ"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"জুই"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"প্ৰকৃত সময়ত বাৰ্তা (RTT) কল"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"ভইচ কল চলি থকাৰ সময়ত বাৰ্তা পঠিওৱাৰ অনুমতি দিয়ক"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTTয়ে বধিৰ বা শ্ৰৱণশক্তি কম থকা, বাকশক্তি সম্পৰ্কীয় দিব্য়াংগ বা কল কৰোঁতে কণ্ঠস্বৰতকৈ অধিক সুবিধাৰ প্ৰয়োজন হোৱা ব্য়ক্তিসকলক সহায় কৰে।&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;অধিক জানক&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT কলসমূহক বাৰ্তাৰ ট্ৰান্সক্ৰিপ্ট হিচাপে ছেভ কৰা হয়\n       &lt;br&gt; - RTT ভিডিঅ\' কলৰ বাবে উপলব্ধ নহয়"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"টোকা: ৰ’মিঙত থাকোঁতে RTT উপলব্ধ নহয়"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY বন্ধ হৈ আছে"</item>
     <item msgid="1449091874731375214">"TTY সম্পূৰ্ণ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"হয়"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"নহয়"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"অগ্ৰাহ্য কৰক"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ফ’নটো জৰুৰীকালীন কলবেক ম’ডত আছে"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> পৰ্যন্ত"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">ফ’নটো <xliff:g id="COUNT_1">%s</xliff:g> মিনিটৰ বাবে জৰুৰীকালীন কলবেক ম’ডত থাকিব।\nআপুনি এতিয়া বাহিৰ হ’বলৈ বিচাৰে নেকি?</item>
+      <item quantity="other">ফ’নটো <xliff:g id="COUNT_1">%s</xliff:g> মিনিটৰ বাবে জৰুৰীকালীন কলবেক ম’ডত থাকিব।\nআপুনি এতিয়া বাহিৰ হ’বলৈ বিচাৰে নেকি?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"সেৱা"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"ছেট আপ কৰক"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;ছেট কৰা হোৱা নাই&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"কল প্ৰতিবন্ধক নিষ্ক্ৰিয় কৰা হ’ল"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"পাছৱৰ্ড সলনি কৰক"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"কল প্ৰতিবন্ধক পাছৱৰ্ড সলনি কৰক"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"কল প্ৰতিবন্ধক পাছৱৰ্ড সলনি কৰিব নোৱাৰি।"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"কল প্ৰতিবন্ধক পাছৱৰ্ড সলনি কৰিব নোৱাৰি"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"পাছৱৰ্ডসমূহ মিলা নাই"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"৪টা সংখ্যাৰ এটা পাছৱৰ্ড লিখক"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"পাছৱৰ্ড সলনি কৰা হ’ল"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"পাছৱৰ্ড নিশ্চিত কৰক"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"পাছৱৰ্ড দিয়ক"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"কল প্ৰতিবন্ধক ছেটিংসমূহ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"সকলো কল প্ৰতিবন্ধক ছেটিং নিষ্ক্ৰিয় কৰেনে?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"নেটৱৰ্ক ব্যস্ত। অনুগ্ৰহ কৰি কিছুসময় পিছত আকৌ কল কৰাৰ চেষ্টা কৰক।"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"নেটৱর্ক ব্যস্ত আছে। সহায়তাৰ বাবে আপোনাৰ ম\'বাইল অ\'পাৰেটৰৰ সৈতে যোগাযোগ কৰক।"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"কলটো বিচ্যুত কৰা হৈছে।"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ব্যৱহাৰ কৰিবলৈ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ছিমত ম’বাইল ডেটা অন হৈ থকাটো নিশ্চিত কৰক। আপুনি ম’বাইল নেটৱৰ্ক ছেটিংসমূহ-লৈ গৈ ইয়াক সলনি কৰিব পাৰে।"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ব্যৱহাৰ কৰিবলৈ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ছিমত ম’বাইল ডেটা আৰু ডেটা ৰ’মিং অন হৈ থকাটো নিশ্চিত কৰক। আপুনি ম’বাইল নেটৱৰ্ক ছেটিংসমূহ-লৈ গৈ ইয়াক সলনি কৰিব পাৰে।"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"অগ্ৰাহ্য কৰক"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ডেটা সংযোগ সক্ৰিয় কৰক"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ডেটা সংযোগ নিষ্ক্ৰিয় কৰক"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE প্ৰ’ভিজন কৰা হৈছে"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ভিডিঅ’ কলিং প্ৰ’ভিজন কৰা হৈছে"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"ৱাইফাই কলিং প্ৰ\'ভিজন কৰা হৈছে"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/উপস্থিতিক প্ৰ’ভিজন কৰা হৈছে"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ডেটা"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS সক্ষম কৰক"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ডিভাইচটো ৰিষ্টার্ট কৰিবনে?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"আপুনি এই ছেটিংটো সলনি কৰিবলৈ আপোনাৰ ডিভাইচটো ৰিষ্টার্ট কৰিব লাগিব।"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ৰিষ্টাৰ্ট কৰক"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"বাতিল কৰক"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"ম’বাইলৰ ৰেডিঅ’ পাৱাৰ"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ছিম ঠিকনা সূচী চাওক"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ফিক্সড্ ডায়েলিং নম্বৰসমূহ চাওক"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"সেৱা ডায়েলিং নম্বৰসমূহ চাওক"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS সেৱাৰ স্থিতি"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMSৰ স্থিতি"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"পঞ্জীকৃত"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"পঞ্জীকৃত নহয়"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"উপলব্ধ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"উপলব্ধ নহয়"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS পঞ্জীয়ন: <xliff:g id="STATUS">%1$s</xliff:g>\nভইচ অভাৰ LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nভইচ অভাৰ ৱাই-ফাই: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nভিডিঅ’ কলিং: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ইণ্টাৰফে’চ: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"সেৱাত আছে"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"সেৱাত নাই"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"কেৱল জৰুৰীকালীন কলসমূহ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ৰেডিঅ’ অফ হৈ আছে"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ৰ’মিং"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ৰ’মিঙত নাই"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"নিষ্ক্ৰিয়"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"ৰিং হৈ আছে"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"কল চলি আছে"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"সংযোগ বিচ্ছিন্ন হৈছে"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"সংযোগ কৰি থকা হৈছে"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"সংযোগ কৰা হ’ল"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"নিলম্বন কৰা হৈছে"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"অজ্ঞাত"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"পিকেটিএছ"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"বাইটসমূহ"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"ডিবিএম"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"এএছইউ"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"বৰ্তমানৰ ছাবআইডি:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ডিফ’ল্ট ডেটা ছিমৰ ছাবআইডি:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL বেণ্ডৱিথ (কেবিপিএছ):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL বেণ্ডৱিথ (কেবিপিএছ):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"চেল অৱস্থানৰ তথ্য (অনুমোদিত নহয়):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ফিজিকেল চেনেলৰ কনফিগাৰেশ্বন:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"চেল তথ্য ৰিফ্ৰেশ্বৰ হাৰ:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"সকলো চেল পৰিমাপৰ তথ্য:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ডেটা সেৱা:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ৰ’মিং:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"কল ৰিডাইৰেক্ট কৰক:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"বুট কৰাৰ পাছত PPP ৰিছেট কৰাৰ সংখ্যা:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"বৰ্তমানৰ নেটৱৰ্ক:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"লাভ কৰা ডেটা:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ভইচ সেৱা:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"সংকেতৰ ক্ষমতা:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ভইচ কলৰ স্থিতি:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"প্ৰেৰণ কৰা ডেটা:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"বাৰ্তা অপেক্ষাৰত:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ফ’ন নম্বৰ:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ৰেডিঅ’ বেণ্ড বাছনি কৰক"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ভইচ নেটৱৰ্কৰ প্ৰকাৰ:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ডেটা নেটৱৰ্কৰ প্ৰকাৰ:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ফ’নৰ ইনডেক্স বাছনি কৰক"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"পচন্দৰ নেটৱৰ্কৰ প্ৰকাৰ ছেট কৰক:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"হ\'ষ্টনাম(www.google.com) IPv4 পিং কৰক:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"হ\'ষ্টনাম(www.google.com) IPv6 পিং কৰক:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP ক্লায়েণ্ট পৰীক্ষা:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"পিং পৰীক্ষা কৰক"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"আপডে’ট কৰক"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ৰিফ্ৰেশ্ব কৰক"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS পৰীক্ষা ট’গল কৰক"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM বিশেষক তথ্য/ছেটিংসমূহ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ৰেডিঅ’ৰ বেণ্ড ম’ড ছেট কৰক"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"বেণ্ড সূচীখন ল’ড কৰি থকা হৈছে…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"ছেট কৰক"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"বিফল"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"সফল"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"টেবলেটৰ তথ্য"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ফ\'নৰ তথ্য"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"বাহকৰ প্ৰ’ভিজনিং তথ্য"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"বাহকৰ প্ৰ’ভিজনিং সূচনা কৰক"</string>
 </resources>
diff --git a/res/values-az/config.xml b/res/values-az/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-az/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 17e21f6..072fa3d 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Şəxsi nömrə"</string>
     <string name="payphone" msgid="7936735771836716941">"Taksofon"</string>
     <string name="onHold" msgid="6132725550015899006">"Gözləmə mövqeyində"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Mesajı"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operator Mesajı"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI kodu başlandı"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD kod işləyir..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI kodu ləğv olundu"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Yalnız NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Tərcih edilmiş şəbəkə rejimi: WCDMA tərcih edilir"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Tərcih edilmiş şəbəkə rejimi: Yalnız GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Tərcih edilmiş şəbəkə rejimi: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Tərcih edilmiş şəbəkə rejimi: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Tərcih edilmiş şəbəkə rejimi: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Tərcih edilən şəbəkə rejimi: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Tərcih edilmiş şəbəkə rejimi: Qlobal"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Tərcih edilmiş şəbəkə rejimi: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Seçilən şəbəkə rejimi: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Tərcih edilmiş şəbəkə rejimi: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Tərcih edilmiş şəbəkə rejimi: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Tərcih edilmiş şəbəkə rejimi: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Tərcih edilən şəbəkə rejimi: Yalnız NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Tərcih edilən şəbəkə rejimi: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Tərcih edilən şəbəkə rejimi: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Tərcih edilən şəbəkə rejimi: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Tərcih edilən şəbəkə rejimi: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Tərcih edilən şəbəkə rejimi: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Tərcih edilən şəbəkə rejimi: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Tərcih edilən şəbəkə rejimi: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Tərcih edilən şəbəkə rejimi: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Tərcih edilən şəbəkə rejimi: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Tərcih edilən şəbəkə rejimi: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Zəng edilir"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Şəbəkə"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Təkmil 4G LTE Rejimi"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-kateqoriya"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multi-kateqoriya aktivdir"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multi-kateqoriya deaktivdir"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (tövsiyə edilir)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (məsləhətlidir)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (məsləhətlidir)"</string>
     <string name="network_global" msgid="3289646154407617631">"Qlobal"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Sabit yığım nömrəsi silinir…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Sabit yığım nömrəsi silindi."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Yanlış PIN daxil etdiyiniz üçün FDN güncəlləşdirilmədi."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Nömrə 20 rəqəmi keçdiyindən FDN yenilənmədi."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Nömrə <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> rəqəmi keçdiyindən FDN yenilənmədi."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN güncəlləşdirilmədi. PIN2 yanlış idi və ya telefon nömrəsi rədd edildi."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN əməliyyatı aılnmadı."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM kart oxunur ..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Zəng etmək mümkün deyil. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> fövqəladə nömrə deyil."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Zəng etmək mümkün deyil. Fövqəladə nömrəni yığ."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Təcili zəng əlçatan deyil"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Yalnız cihazın sahibi PIN/PUK kodlarını daxil edə bilər."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polis"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Təcili yardım"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Yanğın"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Real zaman mətn (RTT) zəngi"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Səsli zəng daxilində mesajlaşmaya icazə verin"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT kar və ya eşitmə problemi olan, danışma qüsuru olan və ya səsdən daha çoxuna ehtiyac duyan şəxslərə dəstək olur.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Ətraflı məlumat&lt;/a&gt;\n &lt;br&gt;&lt;br&gt; - RTT zəngləri mesaj transkripsiyası kimi yadda saxlanılır\n &lt;br&gt; - RTT video zənglər üçün əlçatan deyil"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Qeyd: Rominq zamanı RTT əlçatan olmur"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Teletayp Deaktivdir"</item>
     <item msgid="1449091874731375214">"Tam funksiyası Teletayp"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Bəli"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Xeyr"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Kənarlaşdır"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon fövqəladə geriyə zəng rejimindədir"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> olana qədər"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefon <xliff:g id="COUNT_1">%s</xliff:g> dəqiqəlik fövqəladə geri zəng rejimində olacaq.\nİndi çıxmaq istəyirsiniz?</item>
+      <item quantity="one">Telefon <xliff:g id="COUNT_0">%s</xliff:g> dəqiqəlik fövqəladə geri zəng rejimində olacaq.\nİndi çıxmaq istəyirsiniz?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Xidmət"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Quraşdırma"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ayarlanmayıb&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Zəng bloklama deaktiv edildi"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Parolu dəyişin"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Zəng bloklama parolunu dəyişin"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Zəng bloklama parolunu dəyişmək mümkün deyil."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Zəng bloklama parolunu dəyişmək mümkün deyil"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Parollar uyğun deyil"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 rəqəmli parol daxil edin"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Parol dəyişdirildi"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Parolu təsdiqləyin"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Parol daxil edin"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Zəng bloklama ayarları"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Bütün zəng bloklama ayarları deaktiv edilsin?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Şəbəkə məşğuldur. Sonra yenidən zəng edin."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Şəbəkə bağlantısı zəifdir Yardım üçün mobil operator ilə əlaqə saxlayın."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Call dəyişdirildi."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> istifadə etmək üçün <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM nömrəsində mobil datanın aktiv olduğundan əmin olun. Bunu mobil şəbəkə ayarlarında dəyişə bilərsiniz."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> istifadə etmək üçün <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM nömrəsində mobil data və data rouminqin aktiv olduğundan əmin olun. Bunu mobil şəbəkə ayarlarında dəyişə bilərsiniz."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Rədd edin"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Data bağlantısını aktiv edin"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Data Bağlantısını Deaktiv Edin"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE Təmin edildi"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video Zəng Təmin Edildi"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi Zəngi Təmin Edildi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/İştirak Təmin edildi"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs Datası"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS-i aktiv edin"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Cihaz yenidən başladılsın?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Bu ayarı dəyişmək üçün cihazı yenidən başlatmalısınız."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Yenidən başladın"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Ləğv edin"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobil Radio Enerjisi"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM Ünvan Kitabçasına Baxın"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Sabit Yığım Nömrələrinə Baxın"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xidmət Yığım Nömrələrinə Baxın"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS Xidmət Statusu"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS Statusu"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Qeydiyyatlı"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Qeydiyyatsız"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Əlçatan"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Əlçatan deyil"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS Qeydiyyatı: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE ilə səsli: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWiFi ilə səsli: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo Zəngi: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT İnterfeysi: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Xidmətdə"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Xidmətdən kənarda"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Yalnız təcili zənglər"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio Deaktivdir"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Rominq"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Rominq Deyil"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Fəaliyyətsiz"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Zəng"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Zəng Davam Edir"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Bağlantı kəsildi"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Qoşulur"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Qoşuldu"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Dayandırılıb"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Naməlum"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkt"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bayt"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Cari alt Id:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Defolt data SIM üçün alt Id:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL Buraxılışı (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL Buraxılışı (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Xananın məkan məlumatı (ləğv edilib):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE Fiziki Kanal Konfiqurasiyası:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobil məlumatın yenilənmə göstəricisi:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Operatorun bütün mobil ölçü məlumatı:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Data Xidməti:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Rominq:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Zəng Yönləndirməsi:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Yükləmədən bəri sıfırlanan PPP sayı:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Cari Şəbəkə:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data qəbul edildi:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Səs Xidməti:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Siqnal gücü:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Səsli zəng statusu:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data göndərildi:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mesaj Gözlənilir:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefon nömrəsi:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Radio Diapazon Seçin"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Səs Şəbəkə Növü:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Data Şəbəkə Növü:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Telefon indeksini seçin"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Tərcih Olunmuş Şəbəkə Növü Seçin:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping Hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping Hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP Müştəri Testi:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ping Testi Çalışdırın"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Güncəlləyin"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Yeniləyin"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS Yoxlanışına keçin"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Orijinal Avadanlıq İstehsalçısının Məlumatı/Ayarlar"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Radio Diapazon Rejimini Quraşdırın"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Diapazon Siyahısı Yüklənir…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Ayarlayın"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Alınmadı"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Uğurlu"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Planşet məlumatı"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefon məlumatı"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operator Təchizat Məlumatı"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Operator Təchizatlanmasını aktiv edin"</string>
 </resources>
diff --git a/res/values-b+sr+Latn/config.xml b/res/values-b+sr+Latn/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-b+sr+Latn/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 43d050c..be096d3 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privatan broj"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefonska govornica"</string>
     <string name="onHold" msgid="6132725550015899006">"Na čekanju"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> – poruka"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Poruka mobilnog operatera"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Pokrenut je MMI kôd."</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD kôd je pokrenut…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI kôd je otkazan"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Samo NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Željeni režim mreže: WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Željeni režim mreže: samo GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Željeni režim mreže: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Željeni režim mreže: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Željeni režim mreže: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Željeni režim mreže: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Željeni režim mreže: Globalno"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Željeni režim mreže: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Željeni mrežni režim: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Željeni režim mreže: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Željeni režim mreže: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Željeni režim mreže: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Željeni režim mreže: samo NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Željeni režim mreže: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Željeni režim mreže: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Željeni režim mreže: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Željeni režim mreže: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Željeni režim mreže: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Željeni režim mreže: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Željeni režim mreže: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Željeni režim mreže: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Željeni režim mreže: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Željeni režim mreže: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Pozivanje"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Mreža"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Poboljšani 4G LTE režim"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Više kategorija"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Omogućeno je više kategorija"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Onemogućeno je više kategorija"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (preporučeno)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (preporučeno)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (preporučeno)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globalno"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Brisanje broja za fiksno biranje…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Izbrisan je broj za fiksno biranje."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Broj za fiksno biranje nije ažuriran jer ste uneli netačan PIN kôd."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Broj za fiksno biranje nije ažuriran jer ima više od 20 cifara."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Broj za fiksno biranje nije ažuriran jer ima previše cifara (više od <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>)."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN nije ažuriran. PIN2 je netačan ili je broj telefona odbačen."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Radnja sa brojem za fiksno biranje nije uspela."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Čita se sa SIM kartice…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Poziv nije uspeo. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nije broj za hitne slučajeve."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Poziv nije uspeo. Pozovite broj za hitne slučajeve."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Upućivanje hitnih poziva nije dostupno"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Samo vlasnik uređaja može da unosi PIN/PUK kodove."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policija"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Hitna pomoć"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Vatrogasci"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Poziv sa tekstom u realnom vremenu (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Dozvolite razmenu poruka u audio pozivu"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Tekst u realnom vremenu (RTT) pomaže pozivaocima koji su gluvi, slabo čuju, imaju teškoće u govoru ili kojima je potrebno nešto više od glasa.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Saznajte više&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT pozivi se čuvaju kao transkript poruke\n       &lt;br&gt; – RTT nije dostupan za video pozive"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Napomena: Tekst u realnom vremenu nije dostupan u romingu"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY je isključen"</item>
     <item msgid="1449091874731375214">"Kompletni TTY"</item>
@@ -611,6 +639,13 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ne"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Odbaci"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon je u režimu za hitan povratni poziv"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Telefon će <xliff:g id="COUNT_1">%s</xliff:g> minut biti u režimu za hitan povratni poziv.\nŽelite sad da izađete iz njega?</item>
+      <item quantity="few">Telefon će <xliff:g id="COUNT_1">%s</xliff:g> minuta biti u režimu za hitan povratni poziv.\nŽelite sad da izađete iz njega?</item>
+      <item quantity="other">Telefon će <xliff:g id="COUNT_1">%s</xliff:g> minuta biti u režimu za hitan povratni poziv.\nŽelite sad da izađete iz njega?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Usluga"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Podešavanje"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nije podešeno&gt;"</string>
@@ -750,7 +785,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Ograničavanje poziva je deaktivirano"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Promenite lozinku"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Promenite lozinku za ograničavanje poziva"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Ne možete da promenite lozinku za ograničavanje poziva."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Ne možete da promenite lozinku za ograničavanje poziva"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Lozinke se ne podudaraju"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Unesite lozinku od 4 broja"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Lozinka je promenjena"</string>
@@ -759,7 +794,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Potvrdite lozinku"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Unesite lozinku"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Podešavanja ograničavanja poziva"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Želite li da deaktivirate sva podešavanja ograničavanja poziva?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Mreža je zauzeta. Probajte ponovo da uputite poziv kasnije."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Mreža je zagušena. Zatražite pomoć od mobilnog operatera."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Poziv je preusmeren."</string>
@@ -789,4 +823,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Da biste koristili <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, uverite se da su za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni mobilni podaci. To možete da promenite u podešavanjima mobilne mreže."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Da biste koristili <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, uverite se da su za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni mobilni podaci i prenos podataka u romingu. To možete da promenite u podešavanjima mobilne mreže."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Odbaci"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Omogući vezu za prenos podataka"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Onemogući vezu za prenos podataka"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Dodeljeno za VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video pozivi su dodeljeni"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Pozivanje preko Wi-Fi-ja je dodeljeno"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Dodeljen je EAB/prisustvo"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Podaci CBRS-a"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Omogući DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Želite da restartujete uređaj?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Treba da restartujte uređaj da biste promenili ovo podešavanje."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restartuj"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Otkaži"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Napajanje za radio na mobilnim uređajima"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži adresar SIM-a"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve za fiksno biranje"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve za servisno biranje"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status usluge IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Status IMS-a"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrovano je"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Nije registrovano"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Dostupno"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nije dostupno"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registracija IMS-a: <xliff:g id="STATUS">%1$s</xliff:g>\nGlas preko LTE-a: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nGlas preko Wi-Fi-ja: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo poziv: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interfejs: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Radi"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ne radi"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Samo hitni pozivi"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio je isključen"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Nije u romingu"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Neaktivno"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Zvoni"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Poziv je u toku"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Veza je prekinuta"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Povezuje se"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Povezano je"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendovano"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Nepoznato"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pak."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bajt(ov)a"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"ID klijenta"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Aktuelni subID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubID podrazumevanog SIM-a za podatke:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL propusni opseg (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL propusni opseg (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacije o lokaciji predajnika (zastarelo):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracija LTE fizičkog kanala:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Učestalost osvežavanja informacija o predajniku:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Sve informacije o merenju za predajnik:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Usluga prenosa podataka:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Preusmeravanje poziva:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Broj PPP resetovanja od uključivanja:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Aktuelna mreža:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Primljeni podaci:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Glasovna usluga:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Jačina signala:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status audio poziva:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Poslati podaci:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Poruka na čekanju:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Broj telefona:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Izaberite radijski opseg"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tip glasovne mreže:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tip mreže za prenos podataka:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Izaberite indeks telefona"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Podesite željeni tip mreže:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"IPv4 imena hosta za pingovanje (www.google.com):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"IPv6 imena hosta za pingovanje (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test za HTTP klijenta:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Pokreni test pingovanja"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Ažuriraj"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Osveži"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Uključi/isključi proveru DNS-a"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informacije/podešavanja specifična za proizvođača originalne opreme"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Podesite režim radijskog opsega"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Učitava se lista opsega…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Podesi"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Nije uspelo"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Uspelo je"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informacije o tabletu"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacije o telefonu"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informacije o dodeli mobilnog operatera"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Pokretanje dodele mobilnog operatera"</string>
 </resources>
diff --git a/res/values-be/config.xml b/res/values-be/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-be/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 681aa61..ba9e58f 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Прыватны нумар"</string>
     <string name="payphone" msgid="7936735771836716941">"Таксафон"</string>
     <string name="onHold" msgid="6132725550015899006">"У чаканні"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Паведамленне ад аператара \"<xliff:g id="MMICARRIER">%s</xliff:g>\""</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Паведамленне аператара"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Пачалося выкананне MMI кода"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Запускаецца USSD-код..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Код MMI адменены"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Толькі NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Пераважны рэжым сеткі: пераважна WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Пераважны рэжым сеткі: толькі GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Пераважная сетка: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Пераважная сетка: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Пераважная сетка: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Прыярытэтны рэжым сеткі: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Пераважная сетка: глабальная"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Пераважная сетка: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Пажаданы рэжым сеткі: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Прыярытэтны рэжым сеткі: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Прыярытэтны рэжым сеткі: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Прыярытэтны рэжым сеткі: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Прыярытэтны рэжым сеткі: толькі NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Прыярытэтны рэжым сеткі: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Прыярытэтны рэжым сеткі: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Прыярытэтны рэжым сеткі: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Прыярытэтны рэжым сеткі: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Прыярытэтны рэжым сеткі: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Прыярытэтны рэжым сеткі: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Прыярытэтны рэжым сеткі: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Прыярытэтны рэжым сеткі: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Прыярытэтны рэжым сеткі: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Прыярытэтны рэжым сеткі: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Выклік"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Сетка"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Удасканалены рэжым 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Мульці-катэгорыя"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Мульці-катэгорыя ўключана"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Мульці-катэгорыя адключаная"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (рэкамендуецца)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (рэкамендуецца)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (рэкамендуецца)"</string>
     <string name="network_global" msgid="3289646154407617631">"Глабальныя"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Выдаленне дазволенага нумару..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Дазволены нумар выдалены."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN не быў абноўлены, таму што вы набралі няправільны PIN-код."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Фіксаваны нумар не быў абноўлены, бо ён не можа змяшчаць больш за 20 знакаў."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Фіксаваны нумар не абноўлены, бо не можа складацца больш чым з <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> лічбаў."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Cпiс дазволеных нумароў не адноўлены. PIN2 ўведзены няправiльна, або нумар быў адхiлены."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Аперацыя ў закрытай абаненцкай групе не ўдалася."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Чытанне з SIM-карты..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Выклік немагчымы. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не з\'яўляецца нумарам экстраннай службы."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Выклік немагчымы. Набраць нумар экстраннай службы."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Экстранныя выклікі недаступныя"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Толькі ўладальнік прылады можа ўводзіць PIN-код ці PUK-код."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Паліцыя"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Хуткая дапамога"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Пажарная служба"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Выклік з тэкстам у рэальным часе (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Дазволіць абмен паведамленнямі ў галасавых выкліках"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Функцыя RTT дапамагае абанентам з парушэннямі слыху і маўлення.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Даведацца больш&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT-выклікі захоўваюцца ў выглядзе расшыфроўкі паведамленняў\n       &lt;br&gt; - Функцыя RTT недаступная для відэавыклікаў"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Заўвага. Функцыя RTT недаступная ў роўмінгу."</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Тэлетайп выключаны"</item>
     <item msgid="1449091874731375214">"Поўнафункцыянальны тэлетайп"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Так"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Не"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Адхіліць"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Тэлефон знаходзіцца ў рэжыме экстранных зваротных выклікаў"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Да <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Тэлефон будзе заставацца ў рэжыме экстранных зваротных выклікаў <xliff:g id="COUNT_1">%s</xliff:g> хвіліну.\nВыйсці зараз?</item>
+      <item quantity="few">Тэлефон будзе заставацца ў рэжыме экстранных зваротных выклікаў <xliff:g id="COUNT_1">%s</xliff:g> хвіліны.\nВыйсці зараз?</item>
+      <item quantity="many">Тэлефон будзе заставацца ў рэжыме экстранных зваротных выклікаў <xliff:g id="COUNT_1">%s</xliff:g> хвілін.\nВыйсці зараз?</item>
+      <item quantity="other">Тэлефон будзе заставацца ў рэжыме экстранных зваротных выклікаў <xliff:g id="COUNT_1">%s</xliff:g> хвіліны.\nВыйсці зараз?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Сэрвіс"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Наладка"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Не зададзены&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Адключана забарона выкліку"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Змяніць пароль"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Змяніць пароль забароны выкліку"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Нельга змяніць пароль забароны выкліку."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Не ўдаецца змяніць пароль забароны выкліку"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Паролі не супадаюць"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Увядзіце пароль з 4 лічбаў"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Пароль зменены"</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Пацвердзіце пароль"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Увядзіце пароль"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Налады забароны выкліку"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Адключыць усе налады забароны выкліку?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Сетка занятая. Паўтарыце выклік пазней."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Сетка перагружаная. Звярніцеся да свайго мабільнага аператара."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Выклік адхілены."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Уключыце перадачу мабільных даных на SIM-карце <xliff:g id="SIM_NUMBER">%2$d</xliff:g> для выкарыстання сэрвісу <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Гэта можна зрабіць у наладах мабільнай сеткі."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Уключыце перадачу мабільных даных і інтэрнэт-роўмінг на SIM-карце <xliff:g id="SIM_NUMBER">%2$d</xliff:g> для выкарыстання сэрвісу <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Гэта можна зрабіць у наладах мабільнай сеткі."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Адхіліць"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Уключыць перадачу даных"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Выключыць перадачу даных"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE уключана"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Відэавыклікі ўключаны"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi-тэлефанія ўключана"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence уключана"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Даныя CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Уключыць DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Перазапусціць прыладу?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Каб змяніць гэту наладу, трэба перазапусціць прыладу."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Перазапусціць"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Скасаваць"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Магутнасць радыёсігналу"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Праглядзець адрасную кнігу на SIM-карце"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Прагляд фіксаваных нумароў"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Паглядзець сэрвісныя нумары"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Стан сэрвісу IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Стан IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Зарэгістравана"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Не зарэгістравана"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Даступна"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Недаступна"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Рэгістрацыя IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nГаласавая сувязь па LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nГаласавая сувязь па Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВідэавыклікі: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nІнтэрфейс UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Працуе"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Не працуе"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Толькі экстранныя выклікі"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Перадатчык выключаны"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роўмінг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Не ў роўмінгу"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"У рэжыме чакання"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ідзе празвон"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Ідзе выклік"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Адключана"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Ідзе падключэнне"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Падключана"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Прыпынена"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Невядома"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"пак."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"Б"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"дБм"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Бягучы SubID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubID стандартнай SIM-карты для перадачы даных:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Прапускная здольнасць канала спампоўвання (кбіт/с):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Прапускная здольнасць канала запампоўвання (кбіт/с):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Інфармацыя пра месцазнаходжанне сотавай ячэйкі (састарэлая):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Канфігурацыя фізічнага канала LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Частата абнаўлення даных сотавай сеткі:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Усе паказчыкі сотавай сеткі:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Сэрвіс перадачы даных:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роўмінг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Перанакіраванне выклікаў:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Колькасць скідаў PPP пасля загрузкі:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Бягучая сетка:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Атрыманыя даныя:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Сэрвіс галасавой сувязі:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Магутнасць сігналу:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Стан галасавых выклікаў:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Адпраўленыя даныя:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Непрачытанае паведамленне:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Нумар тэлефона:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Выбраць радыёдыяпазон"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Тып галасавой сеткі:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Тып сеткі перадачы даных:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Выбраць тэлефонны код"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Задаць прыярытэтны тып сеткі:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Каманда ping для хоста www.google.com (IPv4):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Каманда ping для хоста www.google.com (IPv6):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Тэст HTTP-кліента:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Выканаць праверку ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Абнавіць"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Абнавіць"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Уключыць/выключыць праверку DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Інфармацыя/налады пастаўшчыка"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Задаць рэжым радыёдыяпазону"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Загружаецца спіс дыяпазонаў…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Задаць"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Няўдала"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Паспяхова"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Звесткі аб планшэце"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Звесткі аб тэлефоне"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Звесткі аб аператары"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Запусціць сінхранізацыю з аператарам"</string>
 </resources>
diff --git a/res/values-bg/config.xml b/res/values-bg/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-bg/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index b29f7fc..3dabad0 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Частен номер"</string>
     <string name="payphone" msgid="7936735771836716941">"Обществен телефон"</string>
     <string name="onHold" msgid="6132725550015899006">"Задържане на обаждането"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> съобщение"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Съобщение от оператора"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI кодът бе стартиран"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD кодът се изпълнява…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI кодът бе анулиран"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Само NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Предпочитан режим на мрежата: Предпочита се WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Предпочитан режим на мрежата: Само GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Предпочитан режим на мрежата: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Предпочитан режим на мрежата: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Предпочитан режим на мрежата: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Предпочитан режим на мрежата: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Предпочитан режим на мрежата: Глобален"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Предпочитан режим на мрежата: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Предпочитан мрежов режим: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Предпочитан режим на мрежата: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Предпочитан режим на мрежата: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Предпочитан режим на мрежата: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Предпочитан режим на мрежата: само NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Предпочитан режим на мрежата: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Предпочитан режим на мрежата: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Предпочитан режим на мрежата: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Предпочитан режим на мрежата: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Предпочитан режим на мрежата: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Предпочитан режим на мрежата: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Предпочитан режим на мрежата: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Предпочитан режим на мрежата: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Предпочитан режим на мрежата: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Предпочитан режим на мрежата: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Извършва се обаждане"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Мрежа"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Подобрен режим с 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Мултикатегория"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Мултикатегорията е активирана"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Мултикатегорията е деактивирана"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (препоръчително)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (препоръчително)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (препоръчително)"</string>
     <string name="network_global" msgid="3289646154407617631">"Глобална"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Фиксираните номера за набиране се изтриват…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Фиксираните номера за набиране са изтрити."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN не бе актуализирано, защото сте въвели неправилен ПИН."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN не бе актуализиран, защото номерът надвишава 20 цифри."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN не бе актуализиран, защото номерът надвишава <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> цифри."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN не е актуализирано. PIN2 бе неправилен или телефонният номер бе отхвърлен."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Операцията с фиксираните номера за набиране (FDN) не бе успешна."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Четене на данни от SIM картата…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Не може да се извърши обаждане. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не е номер за спешни случаи."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Не може да се извърши обаждане. Наберете номер за спешни случаи."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Не се предлагат спешни обаждания"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Само собственикът на устройството може да въвежда ПИН/PUK кодове"</string>
     <string name="police_type_description" msgid="2819533883972081757">"Полиция"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Линейка"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Пожар"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Обаждане с текстово съобщение в реално време (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Позволяване на съобщения в рамките на гласово обаждане"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT подпомага обаждащи се, които са глухи, имат затруднения със слуха, говорно увреждане или се нуждаят от повече от само глас.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Научете повече&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT обажданията се запазват като препис на съобщение.\n       &lt;br&gt; – RTT не е налице за видеообаждания."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Забележка: ТСРВ не е налице при роуминг"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY е изкл."</item>
     <item msgid="1449091874731375214">"Пълен TTY режим"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Да"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Не"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Отхвърляне"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефонът е в режим на спешно обратно обаждане"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"До <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Телефонът ще бъде в режим на спешно обратно обаждане в продължение на <xliff:g id="COUNT_1">%s</xliff:g> минути.\nИскате ли да излезете сега?</item>
+      <item quantity="one">Телефонът ще бъде в режим на спешно обратно обаждане в продължение на <xliff:g id="COUNT_0">%s</xliff:g> минута.\nИскате ли да излезете сега?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Услуга"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Настройка"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Не е зададено&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Забраната за обаждания е деактивирана"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Промяна на паролата"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Промяна на паролата за забрана за обаждания"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Паролата за забрана за обаждания не може да се промени."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Паролата за забрана за обаждания не може да се промени"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Паролите не съвпадат"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Въведете парола с 4 цифри"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Паролата бе променена"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Потвърждаване на паролата"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Въведете парола"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Настройки за забрана на обажданията"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Да се деактивират ли всички настройки за забрана за обаждания?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Мрежата е заета. Моля, опитайте да се обадите отново по-късно."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Мрежата е претоварена. Свържете се с мобилния си оператор за съдействие."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Обаждането е отклонено."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"За да използвате <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, мобилните данни за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> трябва да са включени. Можете да промените това в настройките за мобилната мрежа."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"За да използвате <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, мобилните данни и роумингът на данни за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> трябва да са включени. Можете да промените това в настройките за мобилната мрежа."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Отхвърляне"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Активиране на връзката за данни"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Деактивиране на връзката за данни"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Обезпечен за VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Видеообажданията са обезпечени"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Обажданията през Wi-Fi са обезпечени"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Обезпечено за EAB/присъствие"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Данни чрез CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Активиране на DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Да се рестартира ли устройството?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"За да промените настройката, трябва да рестартирате устройството си."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Рестартиране"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Отказ"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Мощност на мобилното радио"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Преглед на указателя на SIM картата"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Преглед на номера за фиксирано набиране"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Преглед на номера за набиране на услуги"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Състояние на услугата IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Състояние на услугата IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Регистриран"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Не е регистриран"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Налице"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Не е налице"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Регистрация за услугата IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE телефония: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWi-Fi телефония: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВидеообаждания: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nИнтерфейс на UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Работи"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Не работи"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Само спешни обаждания"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Радиото е изключено"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роуминг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Не е в роуминг"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Неактивно"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Звъни се"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Извършва се обаждане"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Няма връзка"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Установява се връзка"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Установена е връзка"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Спрени"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Неизвестно"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"пакета"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"байта"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"Идентификация на обаждането"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Настоящ идентификационен подномер:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Идентификационен подномер на SIM картата за данни по подразбиране:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Пропускателна способност при изтегляне (кб/сек):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Пропускателна способност при качване (кб/сек):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Информация за местоположението на клетката (оттеглено):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфигурация на физическия канал на LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Честота на опресняване на информацията за клетките:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Цялата измервателна информация за клетките:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Услуга за данни:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роуминг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Пренасочване на обаждането:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Брой нулирания на PPP след стартиране:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Текуща мрежа:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Получени данни:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Гласова услуга:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Сила на сигнала:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Състояние на гласовото обаждане:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Изпратени данни:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Изчакващо съобщение:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Телефонен номер:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Избиране на радиодиапазон"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Тип на гласовата мрежа:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Тип на мрежата за данни:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Избиране на индекс за телефон"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Задаване на предпочитан тип мрежа:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Име на хост за позив (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Име на хост за позив (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Тест на HTTP клиента:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Изпълняване на тест „ping“"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMS център:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Актуализиране"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Опресняване"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Превключване на проверката на DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Информация/настройки, специфични за ОЕМ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Задаване на режима за радиодиапазона"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Списъкът с диапазони се зарежда…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Задаване"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Неуспешно"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Успешно"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Информация за таблета"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Информация за телефона"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Информация за обезпечаването от оператора"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Задействане на обезпечаването от оператора"</string>
 </resources>
diff --git a/res/values-bn/config.xml b/res/values-bn/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-bn/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 40fab58..0fb9e35 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ব্যক্তিগত নম্বর"</string>
     <string name="payphone" msgid="7936735771836716941">"পে ফোন"</string>
     <string name="onHold" msgid="6132725550015899006">"সাময়িকভাবে স্থগিত রাখা হয়েছে"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> মেসেজ"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"পরিষেবা প্রদানকারীর মেসেজ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI কোড শুরু করা হয়েছে"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD কোড চলছে…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI কোড বাতিল করা হয়েছে"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"শুধুমাত্র NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"পছন্দের নেটওয়ার্ক মোড: WCDMA পছন্দসই"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"পছন্দের নেটওয়ার্ক মোড: শুধুমাত্র GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"পছন্দের নেটওয়ার্ক মোড: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"পছন্দের নেটওয়ার্ক মোড: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"পছন্দের নেটওয়ার্ক মোড: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"পছন্দের নেটওয়ার্ক মোড: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"পছন্দের নেটওয়ার্ক মোড: গ্লোবাল"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"পছন্দের নেটওয়ার্ক মোড: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"পছন্দের নেটওয়ার্ক মোড: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"পছন্দের নেটওয়ার্ক মোড: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"পছন্দের নেটওয়ার্ক মোড: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"পছন্দের নেটওয়ার্ক মোড: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"পছন্দের নেটওয়ার্ক মোড: শুধুমাত্র NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"পছন্দের নেটওয়ার্ক মোড: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"কলিং"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"নেটওয়ার্ক"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"উন্নত 4G LTE মোড"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"একাধিক বিভাগ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"একাধিক বিভাগ সক্ষম করা হয়েছে"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"একাধিক বিভাগ অক্ষম করা হয়েছে"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (সাজেস্ট করা হয়েছে)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (প্রস্তাবিত)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (প্রস্তাবিত)"</string>
     <string name="network_global" msgid="3289646154407617631">"বিশ্বব্যাপী"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ডায়াল করার জন্য স্থির নম্বর মোছা হচ্ছে..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"স্থায়ী ডায়ালের নম্বর মুছে ফেলা হয়েছে৷"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"আপনি একটি ভুল পিন টাইপ করায় FDN আপডেট করা হয়নি৷"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"নম্বরটিতে ২০টির বেশি সংখ্যা আছে, তাই FDN আপডেট করা হয়নি।"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>টি সংখ্যার সীমা ছাড়িয়ে যাওয়ায় তাকে আপডেট করা যায়নি।"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN আপডেট করা হয়নি৷ PIN2 ভুল ছিল, বা ফোন নম্বর বাতিল করা হয়েছে৷"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN অপারেশন ব্যর্থ হয়েছে৷"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"সিম কার্ড থেকে পড়া হচ্ছে…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"কল করা যাবে না৷ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> কোনো জরুরী নম্বর নয়৷"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"কল করা যাবে না৷ কোনো জরুরী নম্বর ডায়াল করুন৷"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"জরুরি কল করা যাবে না"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"শুধুমাত্র এই ডিভাইসের মালিক পিন/PUK কোড লিখতে পারবেন।"</string>
     <string name="police_type_description" msgid="2819533883972081757">"পুলিশ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"অ্যাম্বুলেন্স"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"আগুন"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"রিয়েল-টাইম টেক্সট (RTT) কল"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"ভয়েস কলে মেসেজ পাঠানোর অনুমতি দিন"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"যে কলাররা বধির, কানে কম শোনেন, যাদের কথা বলতে অসুবিধা হয় অথবা যারা কণ্ঠস্বরের সাথে অন্য কোনও উপায়ে নিজেদের প্রকাশ করেন, RTT বৈশিষ্ট্যটি তাদের সাহায্য করে।&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;আরও জানুন&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT কলগুলি মেসেজ ট্রান্সক্রিপ্ট হিসেবে সেভ করে রাখা হয়\n       &lt;br&gt; - ভিডিও কলে RTT বৈশিষ্ট্য ব্যবহার করা যায় না"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"মনে রাখবেন: রোমিংয়ে থাকাকালীন RTT কাজ করে না"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY বন্ধ"</item>
     <item msgid="1449091874731375214">"TTY পূর্ণ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"হ্যাঁ"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"না"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"খারিজ করুন"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ফোনটি জরুরি কলব্যাক মোডে থাকবে"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> পর্যন্ত"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one"><xliff:g id="COUNT_1">%s</xliff:g> মিনিটের জন্য ফোনটি জরুরি কলব্যাক মোডে থাকবে।\nআপনি কি এখন বেরিয়ে আসতে চান?</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%s</xliff:g> মিনিটের জন্য ফোনটি জরুরি কলব্যাক মোডে থাকবে।\nআপনি কি এখন বেরিয়ে আসতে চান?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"পরিষেবা"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"সেটআপ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;সেট করা নেই&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"কল নিষিদ্ধ করার বৈশিষ্ট্যটি নিষ্ক্রিয় করা হয়েছে"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"পাসওয়ার্ড পরিবর্তন করুন"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"কল নিষিদ্ধ করার পাসওয়ার্ড পরিবর্তন করুন"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"কল নিষিদ্ধ করার পাসওয়ার্ড পরিবর্তন করা যাবে না।"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"কল নিষিদ্ধ করার পাসওয়ার্ড পরিবর্তন করা যাবে না"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"পাসওয়ার্ড মিলছে না"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"৪টি সংখ্যার পাসওয়ার্ড লিখুন"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"পাসওয়ার্ড পরিবর্তন হয়েছে"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"পাসওয়ার্ড নিশ্চিত করুন"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"পাসওয়ার্ড লিখুন"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"কল নিষিদ্ধ করার সেটিংস"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"কল নিষিদ্ধ করার সমস্ত সেটিংস নিষ্ক্রিয় করবেন?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"নেটওয়ার্ক ব্যস্ত আছে। পরে আবার কল করার চেষ্টা করুন।"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"নেটওয়ার্ক ব্যস্ত আছে। সাহায্যের জন্য আপনার মোবাইল অপারেটরের সাথে যোগাযোগ করুন।"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"কল ডিফ্লেক্ট করা হয়েছে।"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ব্যবহার করতে হলে, <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-এ মোবাইল ডেটা চালু আছে কিনা দেখে নিন। আপনি সেটিংস থেকে এটি পরিবর্তন করতে পারেন।"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ব্যবহার করতে হলে, <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-এ মোবাইল ডেটা এবং ডেটা রোমিং চালু আছে কিনা দেখে নিন। আপনি সেটিংস থেকে এটি পরিবর্তন করতে পারেন।"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"খারিজ করুন"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ডেটা কানেকশন সক্রিয় আছে"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ডেটা কানেকশন নিষ্ক্রিয় করুন"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE প্রস্তুত"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ভিডিও কলিংয়ের ব্যবস্থা আছে"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"ওয়াই ফাই কলিংয়ের ব্যবস্থা আছে"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/উপস্থিতির বন্দোবস্ত"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ডেটা"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS চালু করুন"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"রিস্টার্ট করবেন?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"এই সেটিং পরিবর্তন করতে আপনার ডিভাইস রিস্টার্ট করতে হবে।"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"রিস্টার্ট করুন"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"বাদ দিন"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"মোবাইল রেডিওর গুণমান"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"সিম অ্যাড্রেস বুক দেখুন"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"স্থায়ী ডায়াল নম্বরগুলি দেখুন"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"সার্ভিস ডায়াল নম্বরগুলি দেখুন"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS পরিষেবার স্থিতি"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS স্থিতি"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"রেজিস্টার করা হয়েছে"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"রেজিস্টার করা নয়"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"উপলভ্য"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"উপলভ্য নয়"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS নিবন্ধীকরণ: <xliff:g id="STATUS">%1$s</xliff:g>\nভয়েস ওভার LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nভয়েস ওভার ওয়াই ফাই: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nভিডিও কলিং: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ইন্টারফেস: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"পরিষেবা চালু আছে"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"পরিষেবার বাইরে"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"শুধুমাত্র জরুরি কল"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"রেডিও বন্ধ রয়েছে"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"রোমিং"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"রোমিংয়ে নেই"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"নিষ্ক্রিয়"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"রিং হচ্ছে"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"কল করা হচ্ছে"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ডিসকানেক্ট করা আছে"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"কানেক্ট করা হচ্ছে"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"কানেক্ট করা হয়েছে"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"সাসপেন্ড করা হয়েছে"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"অজানা"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"বাইট"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"বর্তমান subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ডিফল্ট ডেটা সিমের SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"ডিএল ব্যান্ডউইথ (কেবিপিএস):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"ইউএল ব্যান্ডউইথ (কেবিপিএস):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"সেল লোকেশন তথ্য (বন্ধ করা হয়েছে):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ফিজিক্যাল চ্যানেল কনফিগারেশন:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"সেল তথ্যে রিফ্রেশ রেট:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"সমস্ত সেল পরিমাপ তথ্য:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ডেটা পরিষেবা:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"রোমিং:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"কল রিডাইরেক্ট"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"বুট করার পর থেকে এই পরিমাণ PPP পুনরায় সেট করা হয়েছে:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"বর্তমান নেটওয়ার্ক:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ডেটা পাওয়া গেছে"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ভয়েস পরিষেবা:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"সিগন্যাল ক্ষমতা:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ভয়েস কলের স্থিতি:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ডেটা পাঠানো হয়েছে:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"মেসেজের জন্য অপেক্ষা করা হচ্ছে:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ফোন নম্বর:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"রেডিও ব্যান্ড বেছে নিন"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ভয়েস নেটওয়ার্কের প্রকার:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ডেটা নেটওয়ার্কের প্রকার:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ফোনের ইন্ডেক্স বেছে নিন"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"পছন্দের নেটওয়ার্ক সেট করুন:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"হোস্টনামে(www.google.com) IPv4 পিং করুন:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"হোস্টনামে(www.google.com) IPv6 পিং করুন:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP ক্লায়েন্ট পরীক্ষা:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"পিং পরীক্ষা চালান"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"আপডেট করুন"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"রিফ্রেশ"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS চেক টগল করুন"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-নির্দিষ্ট তথ্য/সেটিংস"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"রেডিও ব্যান্ড মোড সেট করুন"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ব্যান্ড তালিকা লোড হচ্ছে..."</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"সেট করুন"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"সফল হয়নি"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"সফল হয়েছে"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ট্যাবলেটের তথ্য"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ফোনের তথ্য"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"পরিষেবা প্রদানকারীর ব্যবস্থামূলক তথ্য"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ট্রিগার পরিষেবা প্রদানকারীর ব্যবস্থা"</string>
 </resources>
diff --git a/res/values-bs/config.xml b/res/values-bs/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-bs/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 7ccfaa9..fbd17bd 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privatni broj"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefonska govornica"</string>
     <string name="onHold" msgid="6132725550015899006">"Na čekanju"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Poruka mobilnog operatera <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Poruka mobilnog operatera"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI kȏd je pokrenut"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD kȏd je pokrenut…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI kȏd je otkazan"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Samo NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferirani način rada mreže: preferiraj WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferirani način rada mreže: samo GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferirani način rada mreže: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferirani način rada mreže: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferirani način rada mreže: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferirani način rada mreže: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferirani način rada mreže: globalno"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preporučeni način rada mreže: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferirani način rada mreže: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferirani način rada mreže: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferirani način rada mreže: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferirani način rada mreže: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferirani način rada mreže: samo NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferirani način rada mreže: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferirani način rada mreže: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferirani način rada mreže: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferirani način rada mreže: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferirani način rada mreže: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferirani način rada mreže: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferirani način rada mreže: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferirani način rada mreže: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferirani način rada mreže: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferirani način rada mreže: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Pozivanje"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Mreža"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Poboljšani 4G LTE način rada"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Više kategorija"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Više kategorija je omogućeno"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Više kategorija je onemogućeno"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (preporučeno)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (preporučeno)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (preporučeno)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globalno"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Brisanje broja fiksnog biranja u toku…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Broj fiksnog biranja je izbrisan."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN nije ažuriran jer ste upisali netačan PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN nije ažuriran jer broj ima više od 20 cifara."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN nije ažuriran jer broj ima više od <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> cifara."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN nije ažuriran. PIN2 je netačan ili je broj telefona odbijen."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN operacija nije uspjela."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Čitanje sa SIM kartice u toku…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Nije moguće pozvati. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nije broj za hitne slučajeve."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Nije moguće pozvati. Birajte broj za hitne slučajeve."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Hitni pozivi nisu dostupni"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Samo vlasnik uređaja može unositi PIN/PUK kodove."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policija"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Vozilo hitne pomoći"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Vatrogasci"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Pozivanje sa slanjem SMS-ova u stvarnom vremenu (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Dozvolite razmjenu poruka tokom glasovnog poziva"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT pomaže pozivaocima koji su gluhi, imaju probleme sa sluhom ili govorom te onima kojima treba više od samog glasa.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Saznajte više&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT pozivi se pohranjuju kao transkripti poruka\n       &lt;br&gt; - RTT nije dostupan za video pozive"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Napomena: RTT nije dostupan u romingu"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY je isključen"</item>
     <item msgid="1449091874731375214">"TTY je pun"</item>
@@ -611,6 +639,13 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ne"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Odbaci"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon je u načinu rada za hitni povratni poziv"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Telefon će biti u načinu rada za hitni povratni poziv <xliff:g id="COUNT_1">%s</xliff:g> minutu.\nŽelite li izaći iz ovog načina rada sada?</item>
+      <item quantity="few">Telefon će biti u načinu rada za hitni povratni poziv <xliff:g id="COUNT_1">%s</xliff:g> minute.\nŽelite li izaći iz ovog načina rada sada?</item>
+      <item quantity="other">Telefon će biti u načinu rada za hitni povratni poziv <xliff:g id="COUNT_1">%s</xliff:g> minuta.\nŽelite li izaći iz ovog načina rada sada?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Usluga"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Postavljanje"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nije postavljeno&gt;"</string>
@@ -750,7 +785,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Zabrana poziva je deaktivirana"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Promijenite lozinku"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Promijenite lozinku za zabranu poziva"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Nije moguće promijeniti lozinku za zabranu poziva."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Nije moguće promijeniti lozinku za zabranu poziva"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Lozinke se ne podudaraju"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Unesite lozinku koja sadrži 4 broja"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Lozinka je promijenjena"</string>
@@ -759,7 +794,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Potvrdite lozinku"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Unesite lozinku"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Postavke zabrane poziva"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deaktivirati sve postavke zabrane poziva?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Mreža je zauzeta. Pokušajte ponovo pozvati kasnije."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Mreža je preopterećena. Kontaktirajte svog mobilnog operatera za pomoć."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Poziv je preusmjeren."</string>
@@ -789,4 +823,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Za korištenje usluge <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, provjerite je li za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključen prijenos podataka na mobilnoj mreži. Ovo možete promijeniti u postavkama mobilne mreže."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Za korištenje usluge <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, provjerite jesu li za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni prijenos podataka na mobilnoj mreži i roming podataka. Ovo možete promijeniti u postavkama mobilne mreže."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Odbaci"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Omogućite vezu za prijenos podataka"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Onemogući vezu za prijenos podataka"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE omogućen"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video poziv obezbijeđen"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"WiFi poziv obezbijeđen"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Omogućeno prisustvo"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs podaci"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Omogući DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Ponovo pokrenuti uređaj?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Da promijenite ovu postavku, trebate ponovo pokrenuti uređaj."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Ponovo pokreni"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Otkaži"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Snaga mobilnog radija"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži SIM adresar"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve fiksnog biranja"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve biranja usluga"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status IMS usluge"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Status za IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrirano"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Nije registrirano"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Dostupno"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nedostupno"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registracija: <xliff:g id="STATUS">%1$s</xliff:g>\nGovor putem LTE mreže: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nGovor putem WiFi mreže: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo pozivanje: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interfejs: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Aktivno"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ne radi"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Samo hitni pozivi"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio je isključen"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Nije u romingu"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"U stanju mirovanja"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Zvoni"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Poziv je u toku"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Veza je prekinuta"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Povezivanje"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Povezano"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendirano"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Nepoznato"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"paketi"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bajtova"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Trenutni pomoćni ID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Pomoćni ID za zadani podatkovni SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL propusnost (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL propusnost (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacije o lokaciji ćelije (zastarjele):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracija LTE fizičkog kanala:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Interval osvježavanja informacija o ćeliji:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Sve informacije o mjerenju ćelije:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Prijenos podataka:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Preusmjeravanje poziva:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Broj vraćanja PPP na početne vrijednosti od posljednjeg pokretanja:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Trenutna mreža:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Primljeni podaci:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Govorna usluga:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Jačina signala:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status glasovnog poziva:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Poslani podaci:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Poruka na čekanju:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Broj telefona:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Odaberi radijski opseg"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Vrsta glasovne mreže:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Vrsta mreže za prijenos podataka:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Odaberi indeks telefona"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Postavi preferiranu vrstu mreže:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Pinguj ime računara (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Pinguj ime računara (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test HTTP klijenta:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Pokreni ping test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Ažuriraj"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Osvježi"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Uključi/isključi provjeru DNS-a"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specifične informacije/postavke"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Postavite način radijskog opsega"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Učitavanje liste opsega…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Postavi"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Neuspješno"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Uspješno"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informacije o tabletu"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacije o telefonu"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operater koji pruža informacije"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktiviranje dodjele resursa operatera"</string>
 </resources>
diff --git a/res/values-ca/config.xml b/res/values-ca/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ca/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index e556372..887a915 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Número privat"</string>
     <string name="payphone" msgid="7936735771836716941">"Telèfon públic"</string>
     <string name="onHold" msgid="6132725550015899006">"En espera"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Missatge de: <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Missatge de l\'operador de telefonia mòbil"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Codi MMI iniciat"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"S\'està executant el codi USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Codi MMI cancel·lat"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Només NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Mode de xarxa preferent: WCDMA preferit"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Mode de xarxa preferent: només GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Mode de xarxa preferent: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Mode de xarxa preferent: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Mode de xarxa preferent: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Mode de xarxa preferent: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Mode de xarxa preferent: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Mode de xarxa preferent: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Mode de xarxa preferent: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Mode de xarxa preferent: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Mode de xarxa preferent: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Mode de xarxa preferent: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Mode de xarxa preferent: només NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Mode de xarxa preferent: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Mode de xarxa preferit: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Mode de xarxa preferent: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Mode de xarxa preferent: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Mode de xarxa preferent: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Mode de xarxa preferent: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Mode de xarxa preferent: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Mode de xarxa preferent: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Mode de xarxa preferent: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Mode de xarxa preferent: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Trucades"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Xarxa"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Mode 4G LTE millorat"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multicategoria"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multicategoria activada"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multicategoria desactivada"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recomanat)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (opció recomanada)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (opció recomanada)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"S\'està suprimint el número de marcatge fix..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Número de marcatge fix suprimit."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN no s\'ha actualitzat ja que has escrit un PIN incorrecte."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN no s\'ha actualitzat perquè el número conté més de 20 dígits."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN no s\'ha actualitzat perquè el número supera els <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> dígits."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"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="fdn_failed" msgid="216592346853420250">"Hi ha hagut un problema en l\'operació FDN."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lectura de la targeta SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"No es pot trucar. <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="2785803395047793634">"No es pot trucar. Marca un número d\'emergència."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Les trucades d\'emergència no estan disponibles"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Només el propietari del dispositiu pot introduir codis PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policia"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulància"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Bombers"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Trucada de text en temps real (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Permet l\'ús de missatges en una trucada de veu"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"La funció RTT ofereix assistència als usuaris que són sords, tenen problemes d\'audició o alteracions de la parla, o bé que necessiten un text a banda de la veu.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Més informació&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Les trucades RTT es desen en forma de transcripció.\n       &lt;br&gt; - Aquesta funció no està disponible per a videotrucades."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Nota: la funció RTT no està disponible en itinerància"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY desactivat"</item>
     <item msgid="1449091874731375214">"TTY complet"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sí"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ignora"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"El telèfon està en el mode de devolució de trucada d\'emergència"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Fins a les <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">El telèfon estarà en el mode de devolució de trucada d\'emergència durant <xliff:g id="COUNT_1">%s</xliff:g> minuts.\nVols sortir-ne ara?</item>
+      <item quantity="one">El telèfon estarà en el mode de devolució de trucada d\'emergència durant <xliff:g id="COUNT_0">%s</xliff:g> minut.\nVols sortir-ne ara?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Servei"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuració"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;No definit&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"S\'ha desactivat la restricció de trucades"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Canvia la contrasenya"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Canvia la contrasenya de restricció de trucades"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"No es pot canviar la contrasenya de restricció de trucades."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"No es pot canviar la contrasenya de restricció de trucades"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Les contrasenyes no coincideixen"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Escriu una contrasenya amb quatre números"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"S\'ha canviat la contrasenya"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirma la contrasenya"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Escriu la contrasenya"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Configuració de restricció de trucades"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Vols desactivar la configuració de restricció de trucades?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"La xarxa està ocupada. Torna a provar de trucar més tard."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"La xarxa està congestionada. Contacta amb l\'operador mòbil per obtenir assistència."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"S\'ha derivat la trucada."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Comprova que les dades mòbils estiguin activades a la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> per utilitzar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Pots canviar aquesta opció a la configuració de xarxa mòbil."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Comprova que les dades mòbils i la itinerància de dades estiguin activades a la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> per utilitzar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Pots canviar aquestes opcions a la configuració de xarxa mòbil."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ignora"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Activa la connexió de dades"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Desactiva la connexió de dades"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Es proporciona VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Es proporcionen videotrucades"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Es proporcionen trucades per Wi-Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Es proporciona EAB/presència"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Dades CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Activa DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Vols reiniciar el dispositiu?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Has de reiniciar el dispositiu per canviar aquesta opció."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reinicia"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel·la"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Potència del senyal mòbil"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Mostra la llibreta d\'adreces de la SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Mostra els números de marcatge fix"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Mostra els números de marcatge de serveis"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Estat del servei de MI"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Estat de MI"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Amb registre"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Sense registrar"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponible"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"No disponible"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registre de MI: <xliff:g id="STATUS">%1$s</xliff:g>\nVeu per LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVeu per Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideotrucades: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterfície d\'UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"En servei"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Sense servei"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Només trucades d\'emergència"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Senyal mòbil desactivat"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Itinerància"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"No està en itinerància"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactivitat"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"S\'està fent sonar"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Trucada en curs"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Sense connexió"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"S\'està connectant"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Amb connexió"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"En suspensió"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Desconegut"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"paquets"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Subidentificador actual:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Subidentificador de la SIM de dades predeterminada:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Amplada de banda de baixada (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Amplada de banda de pujada (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informació d\'ubicació del mòbil (obsoleta):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuració del canal físic de LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Freqüència d\'actualització de la informació del mòbil:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Tota la informació de mesures del mòbil:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Servei de dades:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Itinerància:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redirecció de trucada:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Nombre de ppp restablerts des de l\'inici:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Xarxa actual:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Dades rebudes:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Servei de veu:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Intensitat del senyal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Estat de la trucada de veu:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Dades enviades:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Missatge en espera:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Número de telèfon:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Selecciona la banda de senyal mòbil"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipus de xarxa de veu:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipus de xarxa de dades:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Selecciona la guia telefònica"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Defineix el tipus de xarxa preferit:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Fer ping a IPv4 de nom d\'amfitrió (www.google.com):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Fer ping a IPv6 de nom d\'amfitrió (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Prova de client HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Executa la prova de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Actualitza"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualitza"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Activa o desactiva la comprovació de DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informació/configuració específica d\'OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Configura el mode de banda de senyal mòbil"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"S\'està carregant la llista de bandes…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Defineix"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Incorrecte"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Correcte"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informació de la tauleta"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informació del telèfon"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informació de serveis de l\'operador"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Activa els serveis de l\'operador"</string>
 </resources>
diff --git a/res/values-cs/config.xml b/res/values-cs/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-cs/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 2645338..383cbdf 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Soukromé číslo"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefonní automat"</string>
     <string name="onHold" msgid="6132725550015899006">"Přidržený hovor"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Zpráva od operátora <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Zpráva od operátora"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Kód MMI byl spuštěn"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Kód USSD je spuštěn..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Kód MMI byl zrušen"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Pouze NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Upřednostňovaný režim sítě: preferováno WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Upřednostňovaný režim sítě: pouze GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferovaný režim sítě: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferovaný režim sítě: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferovaný režim sítě: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferovaný režim sítě: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferovaný režim sítě: Globální"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferovaný režim sítě: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferovaný režim sítě: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferovaný režim sítě: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferovaný režim sítě: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferovaný režim sítě: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferovaný režim sítě: pouze NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferovaný režim sítě: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferovaný režim sítě: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferovaný režim sítě: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferovaný režim sítě: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferovaný režim sítě: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferovaný režim sítě: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferovaný režim sítě: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferovaný režim sítě: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferovaný režim sítě: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferovaný režim sítě: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Volání"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Síť"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Vylepšený režim 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Více kategorií"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Více kategorií povoleno"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Více kategorií zakázáno"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (doporučeno)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (doporučeno)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (doporučeno)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globální"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Mazání povoleného telefonního čísla..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Povolené telefonní číslo bylo smazáno."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Funkce Povolená tel. čísla nebyla aktualizována, protože jste zadali chybný kód PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Funkce Povolená telefonní čísla nebyla aktualizována, protože číslo má více než 20 číslic."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Funkce Povolená telefonní čísla nebyla aktualizována, protože číslo má více než <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> číslic."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Povolená tel. čísla (FDN) nebyla aktualizována. Kód PIN2 byl nesprávný nebo bylo telefonní číslo odmítnuto."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operace s čísly FDN se nezdařila."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Čtení ze SIM karty..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Hovor nelze uskutečnit. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> není číslo tísňového volání."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Hovor nelze uskutečnit. Vytočte číslo tísňového volání."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Tísňové volání není dostupné"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Zadávat kódy PIN a PUK může jen vlastník zařízení."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policie"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Záchranka"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Hasiči"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Hovor, během něhož můžete posílat zprávy (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Povolit posílání zpráv během hlasového hovoru"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Funkce SMS během hovoru (RTT) pomáhá volajícím, kteří neslyší, jsou nedoslýchaví, mají řečovou vadu, případně potřebují víc než jen hlas z jiného důvodu.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Další informace&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – Text poslaný během hovoru se uloží jako přepis zpráv\n       &lt;br&gt; – Tato funkce není dostupná při videohovorech"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Použít: Funkce SMS během hovoru není dostupná při roamingu"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY vypnuto"</item>
     <item msgid="1449091874731375214">"Úplný režim TTY"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ano"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ne"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Zavřít"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon je v režimu tísňového zpětného volání"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="few">Telefon bude v režimu tísňového zpětného volání po dobu <xliff:g id="COUNT_1">%s</xliff:g> minut.\nChcete tento režim ukončit?</item>
+      <item quantity="many">Telefon bude v režimu tísňového zpětného volání po dobu <xliff:g id="COUNT_1">%s</xliff:g> minuty.\nChcete tento režim ukončit?</item>
+      <item quantity="other">Telefon bude v režimu tísňového zpětného volání po dobu <xliff:g id="COUNT_1">%s</xliff:g> minut.\nChcete tento režim ukončit?</item>
+      <item quantity="one">Telefon bude v režimu tísňového zpětného volání po dobu <xliff:g id="COUNT_0">%s</xliff:g> minuty.\nChcete tento režim ukončit?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Služba"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Konfigurace"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nenastaveno&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Blokování hovorů je vypnuté"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Změnit heslo"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Změnit heslo k blokování hovorů"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Heslo k blokování hovorů se nepodařilo změnit."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Heslo k blokování hovorů se nepodařilo změnit"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Hesla se neshodují"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Zadejte heslo se 4 číslicemi"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Heslo bylo změněno"</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Potvrďte heslo"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Zadejte heslo"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Nastavení blokování hovorů"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Vypnout všechna nastavení blokování hovorů?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Síť je zaneprázdněná. Zkuste zavolat znovu později."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Síť je přehlcená. O pomoc požádejte svého mobilního operátora."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Hovor byl odkloněn."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Pokud chcete používat službu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, zkontrolujte, že máte zapnutá mobilní data pro SIM kartu <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Můžete to změnit v nastavení mobilní sítě."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Pokud chcete používat službu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, zkontrolujte, že máte zapnutá mobilní data a datový roaming pro SIM kartu <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Můžete to změnit v nastavení mobilní sítě."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Zavřít"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Povolit datové připojení"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Zakázat datové připojení"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Poskytnutí VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Zajištění videohovoru"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Zajištění volání přes Wi-Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Zajištění EAB/přítomnosti"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Data CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Aktivovat DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Restartovat zařízení?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Ke změně nastavení je nutné restartovat zařízení."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restartovat"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Zrušit"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Výkon mobilního přijímače"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Zobrazit adresář SIM karty"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Zobrazit povolená telefonní čísla"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Zobrazit čísla volání služeb"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Stav služby IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Stav IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrováno"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Bez registrace"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"K dispozici"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Není k dispozici"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registrace IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVolání přes LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVolání přes Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideohovory: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nRozhraní UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"V provozu"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Mimo provoz"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Pouze tísňová volání"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Bezdrátový modul je vypnut"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Bez roamingu"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Nečinné"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Vyzvánění"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Probíhá hovor"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Odpojeno"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Připojování"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Připojeno"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Pozastaveno"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Neznámé"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pakety"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"B"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Stávající subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId výchozí datové SIM karty:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Rychlost stahování (kB/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Rychlost nahrávání (kB/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informace o poloze mobilní sítě (podpora ukončena):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurace fyzického kanálu LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Interval obnovení informací o mobilní síti:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Všechny údaje o měření mobilní sítě:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datová služba:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Přesměrování hovoru:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Počet obnovení protokolu PPP od spuštění:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Aktuální síť:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Přijatá data:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Hlasová služba:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Síla signálu:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Stav hlasového hovoru:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Odeslaná data:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Čekající zpráva:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonní číslo:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Zvolit pásmo bezdrátového modulu"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Typ hlasové sítě:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Typ datové sítě:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Vybrat telefonní seznam"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Nastavit upřednostňovaný typ sítě:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping názvu hostitele (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping názvu hostitele (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test klienta HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Spustit test Ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Aktualizovat"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Obnovit"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Přepnout kontrolu DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informace a nastavení specifické pro výrobce OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Nastavit režim pásma bezdrátového modulu"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Načítání seznamu pásem…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Nastavit"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Neúspěšné"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Úspěšné"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informace o tabletu"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informace o telefonu"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informace o zprovoznění služby u operátora"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Spustit zprovoznění služby u operátora"</string>
 </resources>
diff --git a/res/values-da/config.xml b/res/values-da/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-da/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 4a77e64..183ff67 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privat nummer"</string>
     <string name="payphone" msgid="7936735771836716941">"Mønttelefon"</string>
     <string name="onHold" msgid="6132725550015899006">"Ventende"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Besked via <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Besked via mobilnummer"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-nummer er startet"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-kode kører ..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-nummer annulleret"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Kun NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Foretrukken netværkstilstand: WCDMA foretrækkes"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Foretrukken netværkstilstand: kun GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Foretrukken netværkstilstand: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Foretrukken netværkstilstand: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Foretrukken netværkstilstand: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Foretrukken netværkstilstand: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Foretrukken netværkstilstand: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Foretrukken netværkstilstand: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Foretrukket netværkstilstand: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Foretrukken netværkstilstand: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Foretrukken netværkstilstand: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Foretrukken netværkstilstand: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Foretrukken netværkstilstand: Kun NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Foretrukken netværkstilstand: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Foretrukken netværkstilstand: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Foretrukken netværkstilstand: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Foretrukken netværkstilstand: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Foretrukken netværkstilstand: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Foretrukken netværkstilstand: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Foretrukken netværkstilstand: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Foretrukken netværkstilstand: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Foretrukken netværkstilstand: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Foretrukken netværkstilstand: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Opkald"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Netværk"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Udvidet 4G LTE-tilstand"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Flere kategorier"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Flere kategorier er aktiveret"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Flere kategorier er deaktiveret"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (anbefales)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (anbefales)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (anbefales)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Sletter nummer til begrænset opkald..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Nummeret til begrænset opkald blev slettet."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Nummeret til begrænset opkald blev ikke opdateret, fordi du har indtastet en forkert pinkode."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Nummeret til begrænset opkald blev ikke opdateret, fordi nummeret er mere end 20 cifre."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Nummeret til begrænset opkald blev ikke opdateret, fordi nummeret er mere end <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> cifre."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Nummeret til begrænset opkald blev ikke opdateret. PIN2-koden var forkert, eller telefonnummeret blev afvist."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Handlingen mislykkedes."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Læser fra SIM-kort ..."</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Kan ikke ringe op. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> er ikke et alarmnummer."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Kan ikke ringe op. Ring til et alarmnummer."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Det er ikke muligt at foretage nødopkald"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Det er kun ejeren af enheden, der kan angive pinkoder/PUK-koder."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Politi"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Brand"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Opkald via sms i realtid"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Tillad afsendelse af sms-beskeder i et taleopkald"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Sms i realtid hjælper personer, som er døve, hørehæmmede, talehandicappede, eller som har brug for mere end bare tale, med at foretage opkald.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Få flere oplysninger&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – Opkald via sms i realtid gemmes som en beskedtransskription\n       &lt;br&gt; – Sms i realtid er ikke tilgængeligt til videoopkald"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Bemærk! RTT er ikke tilgængeligt under roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY fra"</item>
     <item msgid="1449091874731375214">"Fuld TTY-tilstand"</item>
@@ -611,6 +639,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nej"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Luk"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefonen er i nødtilbagekaldstilstand"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Indtil <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Telefonen er i nødtilbagekaldstilstand i <xliff:g id="COUNT_1">%s</xliff:g> minut.\nVil du lukke nu?</item>
+      <item quantity="other">Telefonen er i nødtilbagekaldstilstand i <xliff:g id="COUNT_1">%s</xliff:g> minutter.\nVil du lukke nu?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Tjeneste"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Konfiguration"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ikke angivet&gt;"</string>
@@ -750,7 +784,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Opkaldsspærring blev deaktiveret"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Skift adgangskode"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Skift adgangskode til opkaldsspærring"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Adgangskoden til opkaldsspærring kan ikke ændres."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Adgangskoden til opkaldsspærring kan ikke ændres"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Adgangskoderne stemmer ikke overens"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Angiv en adgangskode med 4 cifre"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Adgangskoden blev ændret"</string>
@@ -759,7 +793,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Bekræft adgangskode"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Angiv adgangskode"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Indstillinger for opkaldsspærring"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Vil du deaktivere alle indstillinger for opkaldsspærring?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Netværket er optaget. Prøv at ringe igen senere."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Netværket er belastet. Kontakt din mobiludbyder for at få hjælp."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Opkaldet er viderestillet."</string>
@@ -789,4 +822,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Hvis du vil bruge <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, skal du sørge for, at mobildata er slået til for SIM-kortet <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Du kan ændre dette under indstillingerne for mobilnetværk."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Hvis du vil bruge <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, skal du sørge for, at mobildata og dataroaming er slået til for SIM-kortet <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Du kan ændre dette under indstillingerne for mobilnetværk."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Luk"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Aktivér dataforbindelse"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Deaktiver dataforbindelse"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE er provisioneret"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videoopkald er provisioneret"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi-opkald er provisioneret"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/tilstedeværelse er provisioneret"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Aktivér DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Vil du genstarte enheden?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Genstart enheden for at skifte indstilling."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Genstart"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annuller"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobilsendestyrke"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Vis adressebog på SIM-kortet"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vis numre til begrænset opkald"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vis tjenestens faste opkaldsnumre"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-tjenestestatus"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registreret"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Ikke registreret"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Tilgængelig"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Ikke tilgængelig"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-registrering: <xliff:g id="STATUS">%1$s</xliff:g>\nVoLTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoWiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideoopkald: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-grænseflade: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"I drift"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ude af drift"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Kun nødopkald"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radioen er slukket"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Roamer ikke"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inaktiv"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ringer"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Opkald i gang"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Afbrudt"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Forbindelsen oprettes"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Tilsluttet"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspenderet"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Ukendt"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pk."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Nuværende under-id:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Under-id for standard-SIM-kort til data:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Båndbredde til download (kB/sek.):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Båndbredde til upload (kB/sek.):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Oplysning om placering af celle (udfaset):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fysisk kanalkonfiguration for LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Opdateringsfrekvens for celleoplysninger:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alle oplysninger om cellemåling:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datatjeneste:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI-nummer:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Omdirigering af opkald:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Antal PPP-nulstillinger siden start:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Nuværende netværk:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data modtaget:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Taletjeneste:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signalstyrke:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status for taleopkald:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data sendt:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Besked venter:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonnummer:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Vælg radiobånd"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Talenetværkstype:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Datanetværkstype:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Vælg telefonindeks"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Angiv den foretrukne netværkstype:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping værtsnavn (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping værtsnavn (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-klienttest:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Test ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Opdater"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Opdater"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Skift DNS-kontrol"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specifikke oplysninger/indstillinger"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Konfigurer radiobåndstilstand"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Indlæser båndliste…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Angiv"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Mislykket"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Fuldført"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Oplysninger om tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefonoplysninger"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Oplysninger om mobilselskab"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktivér mobilselskab"</string>
 </resources>
diff --git a/res/values-de/config.xml b/res/values-de/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-de/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index f8722f4..a29ae3b 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Private Nummer"</string>
     <string name="payphone" msgid="7936735771836716941">"Münztelefon"</string>
     <string name="onHold" msgid="6132725550015899006">"Anruf wird gehalten"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Nachricht von <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Nachricht vom Mobilfunkanbieter"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-Code gestartet"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-Code wird ausgeführt..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-Code abgebrochen"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TD-SCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TD-SCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TD-SCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Nur NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Bevorzugter Netzmodus: WCDMA bevorzugt"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Bevorzugter Netzmodus: nur GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Bevorzugter Netzmodus: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Bevorzugter Netzmodus: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Bevorzugter Netzmodus: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Bevorzugter Netzmodus: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Bevorzugter Netzmodus: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Bevorzugter Netzmodus: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Bevorzugter Netzmodus: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Bevorzugter Netzmodus: LTE/TD-SCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Bevorzugter Netzmodus: TD-SCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Bevorzugter Netzmodus: LTE/TD-SCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Bevorzugter Netzmodus: nur NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Bevorzugter Netzmodus: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Bevorzugter Netzmodus: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Bevorzugter Netzmodus: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Bevorzugter Netzmodus: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Bevorzugter Netzmodus: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Bevorzugter Netzmodus: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Bevorzugter Netzmodus: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Bevorzugter Netzmodus: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Bevorzugter Netzmodus: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Bevorzugter Netzmodus: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Anrufe"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Netzwerk"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Erweiterter 4G LTE-Modus"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Mehrere Kategorien"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Mehrere Kategorien aktiviert"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Mehrere Kategorien deaktiviert"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (empfohlen)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (empfohlen)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (empfohlen)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Zugelassene Rufnummer wird gelöscht..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Zugelassene Rufnummer gelöscht"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Die Liste der zugelassenen Rufnummern konnte nicht aktualisiert werden, da du eine falsche PIN eingegeben hast."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Die Rufnummernbeschränkung wurde nicht aktualisiert, da die Nummer maximal 20 Ziffern haben darf."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Die Rufnummernbeschränkung wurde nicht aktualisiert, da die Nummer länger als <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> Ziffern ist."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Die Liste der zugelassenen Rufnummern konnte nicht aktualisiert werden. Die eingegebene PIN2 ist ungültig oder die Rufnummer wurde abgelehnt."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Fehler bei der Rufnummernbeschränkung"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM-Karte wird ausgelesen..."</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Anruf nicht möglich. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ist keine Notrufnummer."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Anruf nicht möglich. Wähle eine Notrufnummer."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Notruf nicht verfügbar"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Nur der Eigentümer des Geräts kann PIN-/PUK-Codes eingeben."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polizei"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Krankenwagen"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Feuerwehr"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"RTT-Anruf"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Nachrichten in Sprachanrufen erlauben"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Echtzeittext (Real-Time Text, RTT) dient als Unterstützung für Anrufer, die gehörlos, schwerhörig oder sprachgeschädigt sind oder zusätzlich zur gesprochenen Sprache weitere Informationen benötigen.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Weitere Informationen&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT-Anrufe werden als Nachrichtentranskripte gespeichert\n       &lt;br&gt; – RTT ist nicht für Videoanrufe verfügbar"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Hinweis: RTT ist während des Roamings nicht verfügbar"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY aus"</item>
     <item msgid="1449091874731375214">"TTY (vollständig)"</item>
@@ -611,6 +639,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nein"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Verwerfen"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Das Smartphone ist im Notfallrückrufmodus"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Bis <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Das Smartphone bleibt <xliff:g id="COUNT_1">%s</xliff:g> Minuten im Notfallrückrufmodus.\nMöchtest du den Vorgang jetzt beenden?</item>
+      <item quantity="one">Das Smartphone bleibt <xliff:g id="COUNT_0">%s</xliff:g> Minute im Notfallrückrufmodus.\nMöchtest du den Vorgang jetzt beenden?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Dienst"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Einrichtung"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nicht festgelegt&gt;"</string>
@@ -750,7 +784,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Anrufsperre deaktiviert"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Passwort ändern"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Passwort für Anrufsperre ändern"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Passwort für Anrufsperre kann nicht geändert werden."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Passwort für Anrufsperre kann nicht geändert werden"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Die Passwörter stimmen nicht überein"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Gib ein vierstelliges Passwort ein"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Passwort geändert"</string>
@@ -759,7 +793,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Passwort bestätigen"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Passwort eingeben"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Einstellungen zur Anrufsperre"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Alle Einstellungen zur Anrufsperre deaktivieren?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Das Netzwerk ist ausgelastet. Bitte versuche es später noch einmal."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Das Netzwerk ist überlastet. Bitte wende dich an deinen Mobilfunkanbieter, wenn du Hilfe benötigst."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Anruf umgeleitet."</string>
@@ -789,4 +822,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Damit du <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> nutzen kannst, müssen mobile Daten für SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> aktiviert sein. Du kannst dies in den Einstellungen für das Mobilfunknetz ändern."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Damit du <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> nutzen kannst, müssen mobile Daten und Daten-Roaming für SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> aktiviert sein. Du kannst dies in den Einstellungen für das Mobilfunknetz ändern."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Schließen"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Datenverbindung aktivieren"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Datenverbindung deaktivieren"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-Kennzeichnung"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videoanrufe eingerichtet"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"WLAN-Anrufe eingerichtet"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Präsenz bereitgestellt"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-Daten"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS aktivieren"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Gerät neu starten?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Die Änderung erfordert einen Neustart des Geräts."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Neu starten"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Abbrechen"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobilfunkstärke"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM-Adressbuch anzeigen"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Rufnummernbeschränkung ansehen"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Servicerufnummern anzeigen"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-Dienststatus"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-Status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registriert"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Nicht registriert"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Verfügbar"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nicht verfügbar"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-Registrierung: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice-over-LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice-over-WLAN: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideoanrufe: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-Oberfläche: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In Betrieb"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Außer Betrieb"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Nur Notrufe"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio ausschalten"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Kein Roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inaktiv"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Klingelt"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Anruf wird getätigt"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Nicht verbunden"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Verbindung wird hergestellt"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Verbunden"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Gesperrt"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Unbekannt"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"Pakete"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"Bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"ASU"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Aktuelle Unter-ID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Unter-ID der standardmäßigen Daten-SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-Bandbreite (kbit/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-Bandbreite (kbit/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Standortinformationen des Mobiltelefons (eingestellt):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguration des physischen LTE-Kanals:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Aktualisierungsrate der Mobiltelefoninformationen:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alle Informationen zu Zellenmesswerten:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datendienst:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Rufumleitung:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Anzahl der PPP-Zurücksetzungen seit dem Start:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Aktuelles Netzwerk:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Empfangene Daten:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Sprachdienst:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signalstärke:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status für Audioanruf:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Gesendete Daten:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Nachricht liegt vor:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonnummer:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Frequenzbereich auswählen"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Sprachnetzwerktyp:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Datennetzwerktyp:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Smartphone-Index auswählen"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Bevorzugten Netzwerktyp festlegen:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Hostname (www.google.com) pingen, IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Hostname (www.google.com) pingen, IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-Clienttest:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Pingtest ausführen"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Update"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Aktualisieren"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS-Überprüfung ein-/ausschalten"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-spezifische Infos/Einstellungen"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Frequenzbereichmodus festlegen"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Frequenzliste wird geladen…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Festlegen"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Fehlgeschlagen"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Erfolgreich"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tablet-Informationen"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Über das Telefon"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informationen zur Nutzerverwaltung durch den Anbieter"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Nutzerverwaltung durch den Anbieter auslösen"</string>
 </resources>
diff --git a/res/values-el/config.xml b/res/values-el/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-el/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index a0cf2a1..b2e9653 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Απόκρυψη"</string>
     <string name="payphone" msgid="7936735771836716941">"Τηλέφωνο με χρέωση"</string>
     <string name="onHold" msgid="6132725550015899006">"Σε αναμονή"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Μήνυμα <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Μήνυμα φορέα"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Έναρξη κώδικα MMI"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Ο κώδικας USSD εκτελείται..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Ο κώδικας MMI ακυρώθηκε"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Μόνο NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Προτιμώμενη λειτουργία δικτύου: προτιμώμενο WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Προτιμώμενη λειτουργία δικτύου: μόνο GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Προτιμώμενη λειτουργία δικτύου: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Προτιμώμενη λειτουργία δικτύου: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Προτιμώμενη λειτουργία δικτύου: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Προτιμώμενη λειτουργία δικτύου: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Προτιμώμενη λειτουργία δικτύου: Παγκόσμια"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Προτιμώμενη λειτουργία δικτύου: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Προτιμώμενη λειτουργία δικτύου: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Προτιμώμενη λειτουργία δικτύου: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Προτιμώμενη λειτουργία δικτύου: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Προτιμώμενη λειτουργία δικτύου: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Προτιμώμενη λειτουργία δικτύου: μόνο NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Προτιμώμενη λειτουργία δικτύου: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Κλήση"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Δίκτυο"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Βελτιωμένη λειτουργία 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Πολλές κατηγορίες"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Ενεργοποιήθηκε η προβολή πολλών κατηγοριών"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Απενεργοποιήθηκε η προβολή πολλών κατηγοριών"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (συνιστάται)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (συνιστάται)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (συνιστάται)"</string>
     <string name="network_global" msgid="3289646154407617631">"Παγκοσμίως"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Διαγραφή καθορισμένου αριθμού κλήσης…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Ο καθορισμένος αριθμός κλήσης διαγράφηκε."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Το FDN δεν ενημερώθηκε, επειδή πληκτρολογήσατε εσφαλμένο PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Το FDN δεν ενημερώθηκε, επειδή ο αριθμός ξεπερνάει τα 20 ψηφία."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Το FDN δεν ενημερώθηκε, επειδή ο αριθμός υπερβαίνει τα <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ψηφία."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Δεν έγινε ενημέρωση του FDN. Το PIN2 ήταν λανθασμένο ή ο αριθμός του τηλεφώνου απορρίφθηκε."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Αποτυχία λειτουργίας FDN."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Ανάγνωση από κάρτα SIM…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Δεν είναι δυνατή η κλήση. Το <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> δεν είναι αριθμός έκτακτης ανάγκης."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Δεν είναι δυνατή η κλήση. Πληκτρολογήστε έναν αριθμό έκτακτης ανάγκης."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Η δυνατότητα κλήσεων έκτακτης ανάγκης δεν είναι διαθέσιμη"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Μόνο ο κάτοχος της συσκευής έχει τη δυνατότητα εισαγωγής κωδικών PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Αστυνομία"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ασθενοφόρο"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Πυροσβεστική"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Κλήση με αποστολή κειμένου σε πραγματικό χρόνο (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Να επιτρέπεται η ανταλλαγή μηνυμάτων σε μια φωνητική κλήση"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Η λειτουργία RTT υποβοηθά καλούντες που αντιμετωπίζουν προβλήματα ακοής ή ομιλίας ή θέλουν κάτι περισσότερο από απλή φωνητική επικοινωνία.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Μάθετε περισσότερα&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Οι κλήσεις RTT αποθηκεύονται ως μεταγραφές μηνυμάτων\n       &lt;br&gt; - Η λειτουργία RTT δεν είναι διαθέσιμη για βιντεοκλήσεις"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Σημείωση: Η λειτουργία RTT δεν είναι διαθέσιμη κατά την περιαγωγή"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY Απενεργοποιήθηκε"</item>
     <item msgid="1449091874731375214">"TTY πλήρες"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ναι"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Όχι"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Απόρριψη"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Το τηλέφωνο βρίσκεται σε λειτουργία επιστροφής κλήσης έκτακτης ανάγκης"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Έως <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Το τηλέφωνο θα βρίσκεται σε λειτουργία επιστροφής κλήσης έκτακτης ανάγκης για <xliff:g id="COUNT_1">%s</xliff:g> λεπτά.\nΕπιθυμείτε έξοδο τώρα;</item>
+      <item quantity="one">Το τηλέφωνο θα βρίσκεται σε λειτουργία επιστροφής κλήσης έκτακτης ανάγκης για <xliff:g id="COUNT_0">%s</xliff:g> λεπτό.\nΕπιθυμείτε έξοδο τώρα;</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Υπηρεσία"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Ρυθμίσεις"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Δεν έχει οριστεί&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Η φραγή κλήσεων απενεργοποιήθηκε"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Αλλαγή κωδικού πρόσβασης"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Αλλαγή κωδικού φραγής πρόσβασης για φραγή κλήσεων."</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Δεν είναι δυνατή η αλλαγή του κωδικού πρόσβασης για φραγή κλήσεων."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Δεν είναι δυνατή η αλλαγή του κωδικού πρόσβασης για φραγή κλήσεων"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Οι κωδικοί πρόσβασης δεν αντιστοιχούν μεταξύ τους"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Εισαγάγετε έναν κωδικό πρόσβασης με 4 αριθμούς"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Ο κωδικός πρόσβασης άλλαξε"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Επιβεβαίωση κωδικού πρόσβασης"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Εισαγωγή κωδικού πρόσβασης"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Ρυθμίσεις φραγής κλήσεων"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Απενεργοποίηση όλων των ρυθμίσεων φραγής κλήσεων;"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Το δίκτυο είναι απασχολημένο. Δοκιμάστε να καλέσετε αργότερα."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Παρατηρείται συμφόρηση δικτύου. Επικοινωνήστε με τον φορέα κινητής τηλεφωνίας που χρησιμοποιείτε για βοήθεια."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Έγινε εκτροπή της κλήσης."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Για να χρησιμοποιήσετε την υπηρεσία \"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>\", βεβαιωθείτε ότι τα δεδομένα κινητής τηλεφωνίας είναι ενεργοποιημένα για τη SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Μπορείτε να το αλλάξετε αυτό από τις ρυθμίσεις δικτύου κινητής τηλεφωνίας."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Για να χρησιμοποιήσετε την υπηρεσία \"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>\", βεβαιωθείτε ότι τα δεδομένα κινητής τηλεφωνίας, καθώς και η περιαγωγή δεδομένων, είναι ενεργοποιημένα για τη SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Μπορείτε να το αλλάξετε αυτό από τις ρυθμίσεις δικτύου κινητής τηλεφωνίας."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Απόρριψη"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Ενεργοποίηση σύνδεσης δεδομένων"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Απενεργοποίηση σύνδεσης δεδομένων"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Παρέχεται μέσω VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Παρέχεται δυνατότητα βιντεοκλήσης"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Παρέχεται δυνατότητα κλήσης μέσω Wi-Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Παρέχεται EAB/παρουσία"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Δεδομένα Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Ενεργοποίηση DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Επανεκκίνηση συσκευής;"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Πρέπει να επανεκκινηθεί η συσκευή για να αλλάξει η ρύθμιση."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Επανεκκίνηση"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Ακύρωση"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Ισχύς πομπού κινητής τηλεφωνίας"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Προβολή βιβλίου διευθύνσεων κάρτας SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Προβολή προκαθορισμένων αριθμών κλήσης"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Προβολή αριθμών κλήσης υπηρεσίας"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Κατάσταση υπηρεσίας IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Κατάσταση IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Με εγγραφή"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Χωρίς εγγραφή"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Διαθέσιμο"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Μη διαθέσιμο"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Εγγραφή IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nΦωνή μέσω LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nΦωνή μέσω δικτύου Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nΒιντεοκλήσεις: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nΔιεπαφή UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Σε υπηρεσία"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Εκτός υπηρεσίας"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Μόνο κλήσεις έκτακτης ανάγκης"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Ραδιόφωνο ανενεργό"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Περιαγωγή"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Χωρίς περιαγωγή"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Σε αδράνεια"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Κλήση"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Κλήση σε εξέλιξη"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Αποσυνδεδεμένη"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Γίνεται σύνδεση"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Σε σύνδεση"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Σε αναστολή"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Άγνωστο"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"byte"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Τρέχον subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId προεπιλεγμένης SIM δεδομένων:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Εύρος ζώνης DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Εύρος ζώνης UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Πληροφορίες τοποθεσίας κινητής τηλεφωνίας (καταργήθηκε):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Διαμόρφωση φυσικού καναλιού LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Ρυθμός ανανέωσης στοιχείων κινητής τηλεφωνίας:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Όλα τα στοιχεία μετρήσεων κινητής τηλεφωνίας:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Υπηρεσία δεδομένων:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Περιαγωγή:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"Αριθμός IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Ανακατεύθυνση κλήσης:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Αριθμός επαναφορών PPP από την εκκίνηση:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Τρέχον δίκτυο:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Δεδομένα που λήφθηκαν:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Φωνητική υπηρεσία:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Ισχύς σήματος:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Κατάσταση φωνητικής κλήσης:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Δεδομένα που στάλθηκαν:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Αναμονή μηνύματος:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Αριθμός τηλεφώνου:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Επιλογή ζώνης συχνοτήτων πομπού"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Τύπος δικτύου φωνής:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Τύπος δικτύου δεδομένων:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Επιλογή ευρετηρίου τηλεφώνου"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Ορισμός προτιμώμενου τύπου δικτύου:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Όνομα κεντρικού υπολογιστή Ping (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Όνομα κεντρικού υπολογιστή Ping (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Δοκιμή πελάτη HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Εκτέλεση δοκιμής ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Ενημέρωση"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Ανανέωση"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Εναλλαγή ελέγχου DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Πληροφορίες/ρυθμίσεις για OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Ρύθμιση λειτουργίας ζώνης συχνοτήτων πομπού"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Φόρτωση λίστας ζωνών…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Ορισμός"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Ανεπιτυχής"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Επιτυχής"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Πληροφορίες tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Πληροφορίες τηλεφώνου"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Πληροφορίες παροχής εταιρείας κινητής τηλεφωνίας"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Ενεργοποίηση παροχής εταιρείας κινητής τηλεφωνίας"</string>
 </resources>
diff --git a/res/values-en-rAU/config.xml b/res/values-en-rAU/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-en-rAU/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index bc7fc2b..764fef3 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Private number"</string>
     <string name="payphone" msgid="7936735771836716941">"Payphone"</string>
     <string name="onHold" msgid="6132725550015899006">"On hold"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Message"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operator message"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI code started"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD code running…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI code cancelled"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR only"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferred network mode: WCDMA preferred"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferred network mode: GSM only"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferred network mode: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferred network mode: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferred network mode: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferred network mode: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferred network mode: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferred network mode: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferred network mode: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferred network mode: NR only"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferred network mode: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferred network mode: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferred network mode: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferred network mode: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferred network mode: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferred network mode: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferred network mode: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferred network mode: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferred network mode: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferred network mode: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Calling"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Network"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Enhanced 4G LTE Mode"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-category"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multi-category enabled"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multi-category disabled"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recommended)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recommended)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recommended)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Deleting fixed dialling number…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Fixed dialling number deleted."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN wasn\'t updated because you typed an incorrect PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN wasn\'t updated because the number exceeds 20 digits."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN wasn\'t updated because the number exceeds <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digits."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN wasn\'t updated. The PIN2 was incorrect or the phone number was rejected."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN operation failed."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Reading from SIM card…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Can\'t call. Dial an emergency number."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Emergency calling not available"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Only the owner of the device can enter PIN/PUK codes."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Police"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Fire"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Real-time text (RTT) call"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Allow messaging within a voice call"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT assists callers who are deaf, hard of hearing, have a speech disability or need more than voice alone.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Learn more&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT calls are saved as a message transcript\n       &lt;br&gt; – RTT is not available for video calls"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Note: RTT is not available while roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY off"</item>
     <item msgid="1449091874731375214">"TTY full"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Dismiss"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"The phone is in emergency callback mode"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Until <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">The phone will be in emergency callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes.\nDo you want to exit now?</item>
+      <item quantity="one">The phone will be in emergency callback mode for <xliff:g id="COUNT_0">%s</xliff:g> minute.\nDo you want to exit now?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Service"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Setup"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Not set&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Call barring deactivated"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Change password"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Change call barring password"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Cannot change call barring password."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Cannot change call barring password"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Passwords do not match"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Enter a password with four numbers"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Password changed"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirm password"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Enter password"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Call barring settings"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deactivate all call barring settings?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Network is busy. Please try placing your call again later."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Network is congested. Contact your mobile operator for assistance."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Call deflected."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data and data roaming are turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change these in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Dismiss"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Enable data connection"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Disable data connection"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE provisioned"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video calling provisioned"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi calling provisioned"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence provisioned"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Enable DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Restart device?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"You need to restart your device to change this setting."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restart"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile radio power"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS service status"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registered"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Not registered"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Available"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Unavailable"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registration: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo calling: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interface: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In service"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Out of service"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Emergency calls only"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio off"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Not roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Idle"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ringing"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Call in progress"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Disconnected"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Connecting"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Connected"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspended"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Unknown"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Current subID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId of default data SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL bandwidth (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL bandwidth (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobile location info (deprecated):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE physical channel configuration:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobile info refresh rate:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All mobile measurement info:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Data service:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Call redirect:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Number of PPP reset since boot:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Current network:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data received:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Voice service:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signal strength"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Voice call status:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data sent"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Message waiting:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Phone number:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Select radio band"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Voice network type:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Data network type:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Select phone index"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Set preferred network type:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP client test:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Run ping test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Update"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Refresh"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Toggle DNS check"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specific info/settings"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Set radio band mode"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Loading band list…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Set"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Unsuccessful"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Successful"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Phone info"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operator provisioning info"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger operator provisioning"</string>
 </resources>
diff --git a/res/values-en-rCA/config.xml b/res/values-en-rCA/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-en-rCA/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index f493eeb..9ed04f5 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Private number"</string>
     <string name="payphone" msgid="7936735771836716941">"Payphone"</string>
     <string name="onHold" msgid="6132725550015899006">"On hold"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Message"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operator message"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI code started"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD code running…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI code cancelled"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR only"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferred network mode: WCDMA preferred"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferred network mode: GSM only"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferred network mode: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferred network mode: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferred network mode: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferred network mode: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferred network mode: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferred network mode: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferred network mode: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferred network mode: NR only"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferred network mode: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferred network mode: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferred network mode: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferred network mode: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferred network mode: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferred network mode: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferred network mode: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferred network mode: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferred network mode: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferred network mode: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Calling"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Network"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Enhanced 4G LTE Mode"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-category"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multi-category enabled"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multi-category disabled"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recommended)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recommended)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recommended)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Deleting fixed dialling number…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Fixed dialling number deleted."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN wasn\'t updated because you typed an incorrect PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN wasn\'t updated because the number exceeds 20 digits."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN wasn\'t updated because the number exceeds <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digits."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN wasn\'t updated. The PIN2 was incorrect or the phone number was rejected."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN operation failed."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Reading from SIM card…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Can\'t call. Dial an emergency number."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Emergency calling not available"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Only the owner of the device can enter PIN/PUK codes."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Police"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Fire"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Real-time text (RTT) call"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Allow messaging within a voice call"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT assists callers who are deaf, hard of hearing, have a speech disability or need more than voice alone.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Learn more&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT calls are saved as a message transcript\n       &lt;br&gt; – RTT is not available for video calls"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Note: RTT is not available while roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY off"</item>
     <item msgid="1449091874731375214">"TTY full"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Dismiss"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"The phone is in emergency callback mode"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Until <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">The phone will be in emergency callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes.\nDo you want to exit now?</item>
+      <item quantity="one">The phone will be in emergency callback mode for <xliff:g id="COUNT_0">%s</xliff:g> minute.\nDo you want to exit now?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Service"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Setup"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Not set&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Call barring deactivated"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Change password"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Change call barring password"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Cannot change call barring password."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Cannot change call barring password"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Passwords do not match"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Enter a password with four numbers"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Password changed"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirm password"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Enter password"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Call barring settings"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deactivate all call barring settings?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Network is busy. Please try placing your call again later."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Network is congested. Contact your mobile operator for assistance."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Call deflected."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data and data roaming are turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change these in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Dismiss"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Enable data connection"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Disable data connection"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE provisioned"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video calling provisioned"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi calling provisioned"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence provisioned"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Enable DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Restart device?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"You need to restart your device to change this setting."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restart"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile radio power"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS service status"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registered"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Not registered"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Available"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Unavailable"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registration: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo calling: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interface: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In service"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Out of service"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Emergency calls only"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio off"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Not roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Idle"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ringing"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Call in progress"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Disconnected"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Connecting"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Connected"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspended"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Unknown"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Current subID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId of default data SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL bandwidth (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL bandwidth (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobile location info (deprecated):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE physical channel configuration:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobile info refresh rate:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All mobile measurement info:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Data service:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Call redirect:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Number of PPP reset since boot:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Current network:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data received:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Voice service:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signal strength"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Voice call status:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data sent"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Message waiting:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Phone number:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Select radio band"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Voice network type:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Data network type:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Select phone index"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Set preferred network type:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP client test:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Run ping test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Update"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Refresh"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Toggle DNS check"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specific info/settings"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Set radio band mode"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Loading band list…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Set"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Unsuccessful"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Successful"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Phone info"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operator provisioning info"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger operator provisioning"</string>
 </resources>
diff --git a/res/values-en-rGB/config.xml b/res/values-en-rGB/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-en-rGB/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index bc7fc2b..764fef3 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Private number"</string>
     <string name="payphone" msgid="7936735771836716941">"Payphone"</string>
     <string name="onHold" msgid="6132725550015899006">"On hold"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Message"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operator message"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI code started"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD code running…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI code cancelled"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR only"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferred network mode: WCDMA preferred"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferred network mode: GSM only"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferred network mode: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferred network mode: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferred network mode: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferred network mode: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferred network mode: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferred network mode: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferred network mode: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferred network mode: NR only"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferred network mode: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferred network mode: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferred network mode: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferred network mode: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferred network mode: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferred network mode: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferred network mode: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferred network mode: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferred network mode: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferred network mode: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Calling"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Network"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Enhanced 4G LTE Mode"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-category"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multi-category enabled"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multi-category disabled"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recommended)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recommended)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recommended)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Deleting fixed dialling number…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Fixed dialling number deleted."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN wasn\'t updated because you typed an incorrect PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN wasn\'t updated because the number exceeds 20 digits."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN wasn\'t updated because the number exceeds <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digits."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN wasn\'t updated. The PIN2 was incorrect or the phone number was rejected."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN operation failed."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Reading from SIM card…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Can\'t call. Dial an emergency number."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Emergency calling not available"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Only the owner of the device can enter PIN/PUK codes."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Police"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Fire"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Real-time text (RTT) call"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Allow messaging within a voice call"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT assists callers who are deaf, hard of hearing, have a speech disability or need more than voice alone.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Learn more&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT calls are saved as a message transcript\n       &lt;br&gt; – RTT is not available for video calls"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Note: RTT is not available while roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY off"</item>
     <item msgid="1449091874731375214">"TTY full"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Dismiss"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"The phone is in emergency callback mode"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Until <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">The phone will be in emergency callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes.\nDo you want to exit now?</item>
+      <item quantity="one">The phone will be in emergency callback mode for <xliff:g id="COUNT_0">%s</xliff:g> minute.\nDo you want to exit now?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Service"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Setup"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Not set&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Call barring deactivated"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Change password"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Change call barring password"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Cannot change call barring password."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Cannot change call barring password"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Passwords do not match"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Enter a password with four numbers"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Password changed"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirm password"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Enter password"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Call barring settings"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deactivate all call barring settings?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Network is busy. Please try placing your call again later."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Network is congested. Contact your mobile operator for assistance."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Call deflected."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data and data roaming are turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change these in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Dismiss"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Enable data connection"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Disable data connection"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE provisioned"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video calling provisioned"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi calling provisioned"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence provisioned"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Enable DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Restart device?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"You need to restart your device to change this setting."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restart"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile radio power"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS service status"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registered"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Not registered"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Available"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Unavailable"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registration: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo calling: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interface: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In service"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Out of service"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Emergency calls only"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio off"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Not roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Idle"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ringing"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Call in progress"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Disconnected"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Connecting"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Connected"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspended"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Unknown"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Current subID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId of default data SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL bandwidth (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL bandwidth (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobile location info (deprecated):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE physical channel configuration:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobile info refresh rate:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All mobile measurement info:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Data service:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Call redirect:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Number of PPP reset since boot:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Current network:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data received:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Voice service:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signal strength"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Voice call status:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data sent"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Message waiting:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Phone number:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Select radio band"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Voice network type:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Data network type:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Select phone index"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Set preferred network type:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP client test:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Run ping test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Update"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Refresh"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Toggle DNS check"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specific info/settings"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Set radio band mode"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Loading band list…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Set"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Unsuccessful"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Successful"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Phone info"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operator provisioning info"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger operator provisioning"</string>
 </resources>
diff --git a/res/values-en-rIN/config.xml b/res/values-en-rIN/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-en-rIN/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index bc7fc2b..764fef3 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Private number"</string>
     <string name="payphone" msgid="7936735771836716941">"Payphone"</string>
     <string name="onHold" msgid="6132725550015899006">"On hold"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Message"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operator message"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI code started"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD code running…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI code cancelled"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR only"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferred network mode: WCDMA preferred"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferred network mode: GSM only"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferred network mode: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferred network mode: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferred network mode: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferred network mode: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferred network mode: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferred network mode: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferred network mode: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferred network mode: NR only"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferred network mode: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferred network mode: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferred network mode: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferred network mode: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferred network mode: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferred network mode: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferred network mode: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferred network mode: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferred network mode: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferred network mode: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Calling"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Network"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Enhanced 4G LTE Mode"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-category"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multi-category enabled"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multi-category disabled"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recommended)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recommended)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recommended)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Deleting fixed dialling number…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Fixed dialling number deleted."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN wasn\'t updated because you typed an incorrect PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN wasn\'t updated because the number exceeds 20 digits."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN wasn\'t updated because the number exceeds <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digits."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN wasn\'t updated. The PIN2 was incorrect or the phone number was rejected."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN operation failed."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Reading from SIM card…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Can\'t call. Dial an emergency number."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Emergency calling not available"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Only the owner of the device can enter PIN/PUK codes."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Police"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Fire"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Real-time text (RTT) call"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Allow messaging within a voice call"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT assists callers who are deaf, hard of hearing, have a speech disability or need more than voice alone.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Learn more&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT calls are saved as a message transcript\n       &lt;br&gt; – RTT is not available for video calls"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Note: RTT is not available while roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY off"</item>
     <item msgid="1449091874731375214">"TTY full"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Dismiss"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"The phone is in emergency callback mode"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Until <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">The phone will be in emergency callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes.\nDo you want to exit now?</item>
+      <item quantity="one">The phone will be in emergency callback mode for <xliff:g id="COUNT_0">%s</xliff:g> minute.\nDo you want to exit now?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Service"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Setup"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Not set&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Call barring deactivated"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Change password"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Change call barring password"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Cannot change call barring password."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Cannot change call barring password"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Passwords do not match"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Enter a password with four numbers"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Password changed"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirm password"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Enter password"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Call barring settings"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deactivate all call barring settings?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Network is busy. Please try placing your call again later."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Network is congested. Contact your mobile operator for assistance."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Call deflected."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data and data roaming are turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change these in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Dismiss"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Enable data connection"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Disable data connection"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE provisioned"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video calling provisioned"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi calling provisioned"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence provisioned"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Enable DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Restart device?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"You need to restart your device to change this setting."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restart"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile radio power"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS service status"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registered"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Not registered"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Available"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Unavailable"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registration: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo calling: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interface: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In service"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Out of service"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Emergency calls only"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio off"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Not roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Idle"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ringing"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Call in progress"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Disconnected"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Connecting"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Connected"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspended"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Unknown"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Current subID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId of default data SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL bandwidth (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL bandwidth (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobile location info (deprecated):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE physical channel configuration:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobile info refresh rate:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All mobile measurement info:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Data service:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Call redirect:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Number of PPP reset since boot:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Current network:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data received:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Voice service:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signal strength"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Voice call status:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data sent"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Message waiting:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Phone number:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Select radio band"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Voice network type:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Data network type:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Select phone index"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Set preferred network type:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP client test:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Run ping test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Update"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Refresh"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Toggle DNS check"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specific info/settings"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Set radio band mode"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Loading band list…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Set"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Unsuccessful"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Successful"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Phone info"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operator provisioning info"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger operator provisioning"</string>
 </resources>
diff --git a/res/values-en-rXC/config.xml b/res/values-en-rXC/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-en-rXC/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index e0b670a..250a26d 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‎‎‎‏‎‏‏‎‏‎‎‎‏‏‏‏‎‎‎‎‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎‎‏‏‏‎‎‏‏‏‎‎‎‎Private number‎‏‎‎‏‎"</string>
     <string name="payphone" msgid="7936735771836716941">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‏‎‎‏‏‏‏‎‎‏‏‎‎‏‎‎‎‏‎‎‏‎‎‎‏‎‎‎‏‏‏‎‏‏‎‏‎‎‏‎‏‏‏‏‎‎‎‏‏‎‏‎Payphone‎‏‎‎‏‎"</string>
     <string name="onHold" msgid="6132725550015899006">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‎‏‏‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‏‎‏‎‎‏‎‏‎‎‏‏‎‏‎‏‎‎‎‏‏‏‎‎‏‎‏‎‏‏‏‏‏‏‎‎On hold‎‏‎‎‏‎"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‏‎‎‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‏‎‏‎‎‎‏‎‎‏‏‎<xliff:g id="MMICARRIER">%s</xliff:g>‎‏‎‎‏‏‏‎ Message‎‏‎‎‏‎"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‏‏‎‎‏‏‎‏‏‏‏‎‎‏‏‎‎‏‎‎‎‎‎‏‏‎‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‏‎Carrier Message‎‏‎‎‏‎"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‎‎‏‏‎‏‎‎‎‎‏‎‏‏‎‎‎‏‏‏‎‎‏‎‎‏‎‏‏‏‏‎MMI code started‎‏‎‎‏‎"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‎‎‏‎‏‎‏‎‏‎‎‏‎‎‏‎‎‎‏‏‏‎‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‏‎USSD code running…‎‏‎‎‏‎"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‏‎‎‎‏‎‎‏‏‏‏‎‏‎‏‏‏‏‏‎‎‏‏‏‏‎‏‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‎‎‎‎‎‎MMI code canceled‎‏‎‎‏‎"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‎‎‎‏‎‎‎‎‎‏‎‎‎‎‏‎‎‏‏‎‏‎‎‏‎‏‏‏‏‎‎‎‏‎‎‎‎‏‏‎‏‏‎‎‎‏‏‎‏‎‎‎‎LTE/TDSCDMA/GSM/WCDMA‎‏‎‎‏‎"</item>
     <item msgid="8826479449402151312">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‏‏‎‏‏‎‎‏‏‎‏‏‏‎‎‏‏‎‏‎‎‏‎‎‎‏‏‎‎‏‎‎‎‎‎TDSCDMA/CDMA/EVDO/GSM/WCDMA‎‏‎‎‏‎"</item>
     <item msgid="6284311629324843506">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‎‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‎‎‏‏‏‏‏‎‎‏‎‎LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA‎‏‎‎‏‎"</item>
+    <item msgid="4738087170533378966">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‎‎‏‎‎‏‎‏‏‎‏‏‎‎‏‏‎‏‎‎‏‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‎‎‏‎‏‏‎‎NR only‎‏‎‎‏‎"</item>
+    <item msgid="2935877729588775187">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‏‎‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‏‎‎‎‏‎‎‏‎‎‎‏‎‎‏‏‎NR/LTE‎‏‎‎‏‎"</item>
+    <item msgid="8967513231424970529">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‎‎‎‎‏‏‏‎‎‎‏‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‎‏‏‎‏‎‏‏‏‏‏‎‎‏‎‎‎‎‏‎NR/LTE/CDMA/EvDo‎‏‎‎‏‎"</item>
+    <item msgid="1542643426479755015">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‎‏‎‏‏‎‏‎‎‎‏‎‎‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‏‎‏‎‏‎‎‏‏‎‏‎‏‎‏‏‎‎‏‏‏‏‎‎‎‎‎‏‏‏‎NR/LTE/GSM/WCDMA‎‏‎‎‏‎"</item>
+    <item msgid="5778162260258129841">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‏‏‎‎‎‎‎‎‏‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‎‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‎NR/LTE/CDMA/EvDo/GSM/WCDMA‎‏‎‎‏‎"</item>
+    <item msgid="8088614845214545367">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‎‎‎‏‎‎‎‏‎‎‎‎‏‎‏‏‎‎‎‏‎‏‎‏‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‎‏‏‏‎‏‎‏‏‏‎NR/LTE/WCDMA‎‏‎‎‏‎"</item>
+    <item msgid="6517428040626326776">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‎‏‎‏‎‎‎‏‏‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‎‏‎‏‎‏‏‎‎‏‏‏‏‎‎‏‏‎‎‏‏‏‏‏‎‎‎‎NR/LTE/TDSCDMA‎‏‎‎‏‎"</item>
+    <item msgid="5294150161567170165">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‏‏‏‎‎‎‏‎‎‏‏‎‎‏‏‎‎‎‎‏‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‎‎‏‏‎‏‏‏‏‏‎‎‏‏‏‎‏‎‏‎NR/LTE/TDSCDMA/GSM‎‏‎‎‏‎"</item>
+    <item msgid="4130965694947056705">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎‏‎‏‎‏‎‎‏‎‎‏‏‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎NR/LTE/TDSCDMA/WCDMA‎‏‎‎‏‎"</item>
+    <item msgid="3869566732842046032">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‎‏‏‎‏‏‏‎‏‏‎‎‏‏‏‎‎‎‏‎‎‎‏‎‎‎‏‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‏‎‏‎‎‎‎‎NR/LTE/TDSCDMA/GSM/WCDMA‎‏‎‎‏‎"</item>
+    <item msgid="3942770927563146543">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‏‎‏‏‏‏‎‎‎‏‎‎‏‎‏‎‎‎‏‎‎‏‏‎‏‏‎‎‎‎‎‏‎‎‎‏‏‏‎‎‎‎‏‎‏‎‎‏‎‏‏‏‏‎NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA‎‏‎‎‏‎"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‎‎‎‏‏‏‎‏‎‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‏‏‏‎‎Preferred network mode: WCDMA preferred‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‏‏‎‎‏‏‏‏‎‎‏‎‎‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‏‏‏‏‏‎‎Preferred network mode: GSM only‎‏‎‎‏‎"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‏‏‏‎‎‏‏‎‎‏‏‎‎‎‎‎‎‏‏‏‎‏‎Preferred network mode: LTE‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‎‎‎‏‏‎‎‏‎‎‏‎‏‏‎‏‎‏‎‏‏‎‎‎‎‎‎‏‏‏‎‎‎‏‎‎‏‏‎‎‎‎Preferred network mode: GSM/WCDMA/LTE‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‎‎‏‏‎‎‎‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎Preferred network mode: CDMA+LTE/EVDO‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‎‏‎‏‎‎‏‏‎‏‏‎‎‏‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‏‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‎‎‏‏‏‏‏‏‎Preferred network mode: LTE/CDMA/EvDo/GSM/WCDMA‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‏‎‎‏‎‎‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‎Preferred network mode: Global‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‏‎‏‏‎‏‏‎‎‏‏‏‏‎‏‎‏‎‎‏‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‏‏‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎Preferred network mode: LTE / WCDMA‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‎‏‎‏‎‎‎‎‏‏‎Preferred network mode: LTE / GSM / UMTS‎‏‎‎‏‎"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‏‎‎‎‎‎‎‏‎‏‎‎‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎Preferred network mode: LTE/TDSCDMA/GSM/WCDMA‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‎‎‏‏‎‏‎‏‎‏‎‏‏‎‏‏‏‏‎‎‏‏‏‏‎‎‎‎‏‎Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‏‏‎Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‏‎‎‎‎‎‎‎‎‏‎‎‎‎‎‎‎‎‎‏‎‏‎‎‏‎‏‎‎‏‎‎‎‎‏‏‏‎‎‏‏‏‏‏‏‎Preferred network mode: NR only‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‏‏‏‏‏‎‎‎‎‏‎‏‏‎‏‏‎‎‎‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‏‏‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‎‎‎Preferred network mode: NR / LTE‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‎‏‎‎‎‏‎‏‎‎‏‎‎‎‏‎‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‎‏‎‎‎‎Preferred network mode: NR/LTE/CDMA/EvDo‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‎‏‎‎‎‎‏‎‎‎‎‏‎‎‎‏‎‏‎‎‎‏‎‏‎‎‎‏‎‎‎‏‏‎‏‏‎‎‎‎‏‎‎‎‎‎‎Preferred network mode: NR/LTE/GSM/WCDMA‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‏‎‎‎‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‎‏‎‎‎‏‏‏‎‎‎‏‎‎‏‏‏‎‎Preferred network mode: NR/LTE/CDMA/EvDo/GSM/WCDMA‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‏‎‎‏‏‏‎‏‎‎‏‎‎‎‏‎‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎‎Preferred network mode: NR/LTE/WCDMA‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‎‎‏‎‎‏‏‏‏‏‎‎‏‏‎‏‎‏‎‎‏‎‏‎‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‎‏‏‎‏‏‏‏‏‎Preferred network mode: NR/LTE/TDSCDMA‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‏‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‎‏‏‏‎‎‎‏‏‎‎‏‏‎‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‏‏‎‎‏‎Preferred network mode: NR/LTE/TDSCDMA/GSM‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‏‏‏‎‏‎‎‎‎‎‎‎‎‎‏‎‏‏‎‏‎‎‏‎‎‎‏‎‎Preferred network mode: NR/LTE/TDSCDMA/WCDMA‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‏‏‎‎‏‏‎‎‏‎‎‏‏‎‏‎‎‏‏‎‏‎‏‎‎‏‏‎‎‏‎‏‏‏‎‏‎‏‎‏‎‏‏‏‏‎‏‏‏‎‎‎‎‎‎Preferred network mode: NR/LTE/TDSCDMA/GSM/WCDMA‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‎‏‏‎‎‎‏‏‎‎‎‏‎‏‏‎‏‎‎‏‏‎‏‎Preferred network mode: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA‎‏‎‎‏‎"</string>
     <string name="call_category" msgid="4394703838833058138">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‏‎‏‎‏‏‎‎‎‎‏‎‏‎‎‎‎‏‎‏‎‏‏‎‏‎‎Calling‎‏‎‎‏‎"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‎‎‎‎‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‏‎‏‎‎‎‎Network‎‏‎‎‏‎"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‎‎‎‎‎‎‎‏‏‏‎‎‏‎‎‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‏‏‎‏‏‏‎‎‎Enhanced 4G LTE Mode‎‏‎‎‏‎"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‎‎‎‏‎‎‎‏‎‏‎‎‏‎‎‎‎‎‎‏‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎Multi-category‎‏‎‎‏‎"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‎‎‏‏‎‎‏‎‏‏‎‎‎‎‏‎‎‏‏‎‏‎‎‏‏‎‎‎‎‎‎‏‎‏‏‎‏‏‎‏‎‏‏‏‎‎‎‎Multi-category enabled‎‏‎‎‏‎"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‏‏‏‎‏‏‏‏‎‏‎‏‎‏‎‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‎‎‏‏‎‏‎‏‎‏‏‎‎‎‎Multi-category disabled‎‏‎‎‏‎"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" ‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‎‏‏‎‎‏‎‏‎‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‎‎‎‏‏‏‎‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‏‏‏‎‎ (recommended)‎‏‎‎‏‎"</string>
     <string name="network_lte" msgid="7206879277095094280">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‎‏‏‎‏‎‎‏‎‎‏‏‎‎‎‎‎‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‎‎LTE (recommended)‎‏‎‎‏‎"</string>
     <string name="network_4G" msgid="6800527815504223913">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‎‎‎‏‎‏‎‏‎‎‎‎‎‎‎‏‎‎‎‏‏‏‏‎‎‎‎‏‎‎‏‎‏‎‏‏‎‏‏‏‏‎‏‎‏‎‏‎‎‏‎4G (recommended)‎‏‎‎‏‎"</string>
     <string name="network_global" msgid="3289646154407617631">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‎‏‏‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎Global‎‏‎‎‏‎"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‎‏‏‏‏‎‎‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‎‎‎‏‏‎‎‎Deleting fixed dialing number…‎‏‎‎‏‎"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‎‏‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‏‏‎‎Fixed dialing number deleted.‎‏‎‎‏‎"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‏‏‎‎‏‏‎‏‎‎‎‏‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‎‏‎‏‎‎‏‏‎‏‎‏‎‎FDN wasn\'t updated because you typed an incorrect PIN.‎‏‎‎‏‎"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‏‏‏‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‏‎‏‎‎‎‏‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎FDN wasn\'t updated because the number exceeds 20 digits.‎‏‎‎‏‎"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎‏‎‏‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‏‏‎FDN wasn\'t updated because the number exceeds ‎‏‎‎‏‏‎<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>‎‏‎‎‏‏‏‎ digits.‎‏‎‎‏‎"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‏‏‎‎‏‏‎‏‎‏‏‎‏‎‏‎‎‏‏‎‏‏‎‏‎‏‎‎‎‏‏‏‎‎‎‏‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎FDN wasn\'t updated. The PIN2 was incorrect, or the phone number was rejected.‎‏‎‎‏‎"</string>
     <string name="fdn_failed" msgid="216592346853420250">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‏‏‎‎‎‎‏‏‏‎‏‎‎‎‏‎‎‎‎‏‎‏‏‎‎‏‏‎‏‏‎‏‎‎FDN operation failed.‎‏‎‎‏‎"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‏‏‎‏‏‎‏‏‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‏‎‎‎‏‎‏‏‎‎‎‏‏‎‏‏‎Reading from SIM card…‎‏‎‎‏‎"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‏‏‎‏‏‏‎‏‎‏‏‏‏‎‏‎‎‏‎‎‎‏‏‏‎‎‎‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎Can\'t call. ‎‏‎‎‏‏‎<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g>‎‏‎‎‏‏‏‎ is not an emergency number.‎‏‎‎‏‎"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‎‏‎‏‎‎‏‎‎‏‎‏‎‎‏‎‏‏‎‏‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‎‎‎‏‏‏‏‏‎‎‎‏‎‎Can\'t call. Dial an emergency number.‎‏‎‎‏‎"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‎‏‎‎‏‎‏‏‎‏‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‎‏‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎Emergency calling not available‎‏‎‎‏‎"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‏‏‎‎‎‎‎‏‏‏‎‎‎‎‏‏‎‏‏‏‎‏‎‎‏‎‎Only the owner of the device can enter PIN/PUK codes.‎‏‎‎‏‎"</string>
     <string name="police_type_description" msgid="2819533883972081757">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‎‎‎‎‎‏‎‎‏‎‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‏‏‏‎‏‎Police‎‏‎‎‏‎"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‎‎‎‎‏‏‎‏‎‎‏‎‎‏‏‎‎‏‎‏‏‎‏‎Ambulance‎‏‎‎‏‎"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‏‎‎‎‏‎‎‎‏‏‏‎‎‎‎‏‎‏‎‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‎Fire‎‏‎‎‏‎"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‏‎‎‏‏‏‎‏‎‏‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎Real-time text (RTT) call‎‏‎‎‏‎"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎‏‎‏‏‎‎‏‎‏‎‎‏‎‎‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‎‎‎‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‏‎‎Allow messaging within a voice call‎‏‎‎‏‎"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‎‎‎‏‎‎‏‏‏‎‎‏‏‏‎‎‎‎‏‎‎‎‎‎‏‎‎‎‏‏‎‏‎‎‎‏‏‎‎‏‏‏‎‎‏‎‎‏‎‏‏‎‏‏‏‏‎‎RTT assists callers who are deaf, hard of hearing, have a speech disability, or need more than voice alone.&lt;br&gt; &lt;a href=‎‏‎‎‏‏‎<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>‎‏‎‎‏‏‏‎&gt;Learn more&lt;/a&gt;‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎       &lt;br&gt;&lt;br&gt; - RTT calls are saved as a message transcript‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎       &lt;br&gt; - RTT is not available for video calls‎‏‎‎‏‎"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‎‏‏‏‎‎‏‏‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‎‏‏‏‏‎‏‎Note: RTT is not available while roaming‎‏‎‎‏‎"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‎‏‏‏‎‎‏‎‎‎‏‎‎‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‏‎TTY Off‎‏‎‎‏‎"</item>
     <item msgid="1449091874731375214">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‎‎‎‎‎‏‏‏‎‎‎‎‏‏‎‏‎‏‎‏‏‎‎‎‎‏‏‏‏‎‏‎‎‎‎‏‎‎‎‏‎‎‏‎‏‏‏‎‏‎‎‏‏‎‏‏‏‎‎TTY Full‎‏‎‎‏‎"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‏‏‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‏‏‎‎‏‎‏‏‎‎‏‎‎‏‎Yes‎‏‎‎‏‎"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‏‎‏‎‏‏‎‏‎‏‎‎‎‏‏‎‎‏‏‎‎‏‎‏‏‏‏‏‎‎‏‏‎‏‏‎‎‏‎‎‎‎‎‎‏‎‎‎‏‎‎‎No‎‏‎‎‏‎"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‎‎‎‏‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‎‎‎‏‎‏‎‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‎Dismiss‎‏‎‎‏‎"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‎‎‏‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‏‎‏‎‏‎‏‏‎‎‏‎The phone is in emergency callback mode‎‏‎‎‏‎"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‏‎‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‏‎‎‏‎‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‏‎‏‎‏‎‏‎‎Until ‎‏‎‎‏‏‎<xliff:g id="COMPLETETIME">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‎‎‎The phone will be in emergency callback mode for ‎‏‎‎‏‏‎<xliff:g id="COUNT_1">%s</xliff:g>‎‏‎‎‏‏‏‎ minutes.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Do you want to exit now?‎‏‎‎‏‎</item>
+      <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‎‎‎The phone will be in emergency callback mode for ‎‏‎‎‏‏‎<xliff:g id="COUNT_0">%s</xliff:g>‎‏‎‎‏‏‏‎ minute.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Do you want to exit now?‎‏‎‎‏‎</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‏‎‏‏‎‏‎‏‏‏‎‎‏‎‎‎‏‏‏‎‏‎‎‎‏‎‏‎‎‎‏‏‏‎‎Service‎‏‎‎‏‎"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‎‎‏‎‏‎‎‏‏‎‎‏‏‏‎‎‎‏‎‎‎‎‎‎‏‎‏‎‏‏‎‏‏‏‎‎‎‏‎‏‏‎‏‎‎‎‎Setup‎‏‎‎‏‎"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‎‎‎‎‎‎‎‏‎‎‎‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‏‏‏‏‏‎‎‎‏‎‎‏‏‎‎‏‎‏‎‏‏‎&lt;Not set&gt;‎‏‎‎‏‎"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‎‏‎‎‏‎‏‎‏‎‎‎‏‎‏‏‏‎‎‏‎‏‎‎‎‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‏‎Call barring deactivated‎‏‎‎‏‎"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‎‎‎‎‏‎‎‏‎‏‎‎‏‏‏‎‎‏‎‏‎‎‎‏‏‏‎‎‏‏‏‎‏‏‎‏‏‎‏‎‎‏‏‏‎‎‎‏‏‎‏‎‎‏‏‎Change password‎‏‎‎‏‎"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‏‎‏‎‏‏‏‏‎‎‎‎‎‏‏‏‎‎‏‏‎‎‎‏‏‏‏‎‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎‏‏‎Change call barring password‎‏‎‎‏‎"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‏‏‏‎‏‏‏‎‎‏‎‎‏‎‏‏‎‏‏‏‏‏‏‎Cannot change call barring password.‎‏‎‎‏‎"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‎‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‏‎‎‎‎‎‏‏‎‎‎‎‎Cannot change call barring password‎‏‎‎‏‎"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‎‎‎‎‎‏‎‏‎‏‎‏‎‏‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‎‎‏‎‎Passwords do not match‎‏‎‎‏‎"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‎‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‎‏‎‏‏‎‎‎‎‏‎‏‎‎‏‎‎‎‎‎‏‎‎Enter a password with 4 numbers‎‏‎‎‏‎"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‎‎‏‎‏‎‏‎‏‏‎‎‎‏‎‎‏‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎Password changed‎‏‎‎‏‎"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‎‎‏‎‎‎‏‎‎Confirm password‎‏‎‎‏‎"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‏‏‎‎‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‏‎‎‏‎‎‎‎‏‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎‎‎‎‎‎Enter password‎‏‎‎‏‎"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎‎‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‎‏‏‏‎‎‏‏‏‎Call barring settings‎‏‎‎‏‎"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‎‎‏‎‏‎‎‎‏‏‎‎‏‎‎‏‏‎‎‎‎‎‎‏‎‎‎‎‏‎‏‎‎‎Deactivate all call barring settings?‎‏‎‎‏‎"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‏‏‎‏‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‎‏‎‎‏‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‏‏‎‎‏‎‎‎‏‎Network is busy. Please try your call again later.‎‏‎‎‏‎"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‏‏‎‎‎‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‎‎‏‏‎‎‎‏‏‎‎‏‎‎‏‎‎‏‎‏‎‏‎‎‎Network is congested. Contact your mobile operator for assistance.‎‏‎‎‏‎"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‎‏‏‎‏‎‎‏‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‎‎‏‎‎‎‏‏‎‏‎‏‎Call deflected.‎‏‎‎‏‎"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‏‎‎‏‏‎‎‎‏‎‎‎‏‏‏‎‎‏‎‏‏‏‎‏‏‎‏‎‎‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‏‎‎To use ‎‏‎‎‏‏‎<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎, make sure mobile data is turned on for SIM ‎‏‎‎‏‏‎<xliff:g id="SIM_NUMBER">%2$d</xliff:g>‎‏‎‎‏‏‏‎. You can change this in mobile network settings.‎‏‎‎‏‎"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‎‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‏‏‎‎‏‏‎‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎‏‎To use ‎‏‎‎‏‏‎<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎, make sure mobile data and data roaming are turned on for SIM ‎‏‎‎‏‏‎<xliff:g id="SIM_NUMBER">%2$d</xliff:g>‎‏‎‎‏‏‏‎. You can change these in mobile network settings.‎‏‎‎‏‎"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‏‏‎‏‏‏‎‏‏‏‎‏‎‎‎‎‎‏‎‏‎‎‏‏‎‏‎‏‏‎‏‎‎‏‎‎‎‎‎‎‎‎‏‎‎‏‎‏‏‎‏‎‎‎Dismiss‎‏‎‎‏‎"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‎‎‎‎‎‏‎‏‎‏‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‎‏‎‏‎‏‏‎‏‏‎‏‎‎‎‎Enable Data Connection‎‏‎‎‏‎"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‎‎‏‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‏‎‎‏‎‏‎‏‎‎‎‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‎‎‏‎‎Disable Data Connection‎‏‎‎‏‎"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‎‏‎‏‏‎‎‎‏‎‎‎‏‎‎‏‏‎‏‏‏‎‏‏‎‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‏‎‏‎‎‏‏‎‎‏‎‎VoLTE Provisioned‎‏‎‎‏‎"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‎‎‎‏‏‎‎‎‏‎‏‏‎Video Calling Provisioned‎‏‎‎‏‎"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‏‏‎‎‎‏‎‏‎‏‏‎‎‎‏‏‎‎‏‏‎‏‏‎‏‎‎‏‎‎‏‎‏‎‎‎‎‎‎‎‎‎‏‏‎‏‏‎‎‏‏‎‎‎Wifi Calling Provisioned‎‏‎‎‏‎"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‎‎‎‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‎‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‏‏‎EAB/Presence Provisioned‎‏‎‎‏‎"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎‎‎‏‎‎‎‎‏‎‎‏‎‎‎‎‎‏‎‏‏‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‏‎‏‎Cbrs Data‎‏‎‎‏‎"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‏‏‎‎‎‏‎‏‎‎‎‏‎‎‏‏‏‎‎‏‏‎‎‎‏‏‏‏‏‏‎‎‎Enable DSDS‎‏‎‎‏‎"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎‎‏‏‎‎‎‎‏‎‏‏‏‎Restart Device?‎‏‎‎‏‎"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‎‏‎‏‏‏‎‎‎‏‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎You need to restart your device to change this setting.‎‏‎‎‏‎"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‎‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‏‏‎‏‎‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‏‏‎‏‎Restart‎‏‎‎‏‎"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‎‏‎‎‎‎‏‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‎‏‏‎‏‏‏‎‏‏‎‏‎‏‎‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‏‏‏‏‏‎Cancel‎‏‎‎‏‎"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‏‎‎‎‎‏‎‎‎‎‎‎‏‎‎‏‏‎‎‎‎‏‏‏‏‎‏‎‎‏‎‏‎‏‎‎‏‏‎‎‎‏‎‎‎‏‏‎Mobile Radio Power‎‏‎‎‏‎"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‎‎View SIM Address Book‎‏‎‎‏‎"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‏‏‎‏‎‎‎‏‎‏‎‏‏‎‎‏‏‏‏‎‎‏‎‏‎‏‎‏‏‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‎View Fixed Dialing Numbers‎‏‎‎‏‎"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‎‏‎‏‏‎‏‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‏‎‎View Service Dialing Numbers‎‏‎‎‏‎"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‏‎‏‎‎‎‎‏‏‎‏‎‏‎‎‎‏‏‎‎‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‎‏‏‎‎‎‎IMS Service Status‎‏‎‎‏‎"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‎‎‏‏‎‏‎‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‏‎‏‏‏‎‏‎‏‎‎‎‏‏‏‎IMS Status‎‏‎‎‏‎"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‎‏‏‏‎‎‏‎‎‏‏‎‏‎‎‎‏‎‏‎‎‏‏‏‎‏‏‎‎‏‏‎‎‎‎‎‎‎‏‏‎‎‏‏‏‏‎‎‎‏‏‎‎Registered‎‏‎‎‏‎"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‏‎‏‎‏‎Not Registered‎‏‎‎‏‎"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‏‎‏‎‎‎‏‎‏‏‎‏‏‎‏‎‏‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‎‏‏‎‎‎Available‎‏‎‎‏‎"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‏‏‎‎‎‏‎‏‎‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‎‎‎‏‎‎Unavailable‎‏‎‎‏‎"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‏‏‎‎‏‎‏‎‎‎‏‏‏‎‏‎‎‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‏‏‎‎IMS Registration: ‎‏‎‎‏‏‎<xliff:g id="STATUS">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Voice over LTE: ‎‏‎‎‏‏‎<xliff:g id="AVAILABILITY_0">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Voice over WiFi: ‎‏‎‎‏‏‎<xliff:g id="AVAILABILITY_1">%3$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Video Calling: ‎‏‎‎‏‏‎<xliff:g id="AVAILABILITY_2">%4$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎UT Interface: ‎‏‎‎‏‏‎<xliff:g id="AVAILABILITY_3">%5$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‎‎‏‎‏‎‎‎‏‎‏‎‎‎‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‏‏‏‏‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‎‎In Service‎‏‎‎‏‎"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‏‎‎‎‎‎‏‎‎‎‎‎‎‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‎‎‎Out of Service‎‏‎‎‏‎"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‏‏‏‎‎‏‎‏‏‎‎‏‏‏‎‎‎‎‏‎‏‎‏‏‎‏‎‎‎‎‏‏‎‏‎‏‏‎‎‏‎‎‏‎‏‏‎‎‏‎‎‎‎‎Emergency Calls Only‎‏‎‎‏‎"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‎‎‏‏‎‎‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‏‎‎‎‏‎‏‎‏‎‏‎‏‏‎‎‎‎Radio Off‎‏‎‎‏‎"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‎‎‏‏‏‎‎‏‏‏‏‏‎‎‎‎‏‎‏‎‏‎‎‏‎‎‏‎‎‏‏‎‏‎‏‏‎‎‎‏‏‎‏‏‎‏‎Roaming‎‏‎‎‏‎"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‏‏‏‎‎‏‎‏‎‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‏‎‎‏‎‏‎‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‎‏‏‏‏‎‎Not Roaming‎‏‎‎‏‎"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‏‎‏‎‏‎‎‏‎‏‎‎‎‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‎‎‏‎‎‎‏‎‎‎‏‎‏‏‎‏‎‎‏‎‏‏‏‎‏‏‎Idle‎‏‎‎‏‎"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‏‎‏‎‎‎‏‏‏‏‎‏‎‎‏‏‎‎‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‏‎‎‎‏‏‏‏‎‏‎‎Ringing‎‏‎‎‏‎"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‎‎‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‎‎‎‎‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‏‎‎Call in Progress‎‏‎‎‏‎"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‏‎‏‎‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‏‎‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‎‎‏‏‏‏‏‎‎‏‏‎‏‎Disconnected‎‏‎‎‏‎"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‏‏‎‏‎‏‏‎‏‎‎‏‎‏‏‎‏‎‎‎‎‏‎‎‏‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‎‎‏‏‏‎‎‎‏‎‎‏‏‎‎‎‎Connecting‎‏‎‎‏‎"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‎‏‎‎‏‏‏‎‎‎‏‎‏‏‎‎‎‏‏‏‎‏‎‏‎‎‎‏‏‏‎‎‎‎‎‏‎‏‎‎‎Connected‎‏‎‎‏‎"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‏‏‏‎‎‎‏‏‏‎‏‏‎‏‏‏‎‎‏‏‎‏‏‎‎‎‎‎‎‏‏‎‏‎‎‎‏‏‎‏‏‎‏‏‎‎‎‎‏‎Suspended‎‏‎‎‏‎"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‏‏‎‏‎‏‏‎‎‎‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‎‎Unknown‎‏‎‎‏‎"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‎‏‎‎‏‎‏‎‎‎‏‏‎‏‏‏‏‎‎‏‎‎‎‏‏‏‏‏‏‎‏‎pkts‎‏‎‎‏‎"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‏‎‏‎‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‎‏‎bytes‎‏‎‎‏‎"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‎‎‎‏‎‎‎‎‏‎‏‏‏‎‏‎‏‎‎‎‎‎‎‏‎‎‏‏‎‎‏‎‎‏‎‎‏‎‎‏‏‏‎dBm‎‏‎‎‏‎"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎‎‏‏‏‏‎‏‎‏‏‏‎‎‎‎‏‎‎‎‎‎‏‏‏‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‎‎asu‎‏‎‎‏‎"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‎‎‏‏‎‏‎‏‎‏‎‏‎‏‎‎‎‏‏‏‏‎‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‏‏‏‎‎‏‎‎‏‎‏‎LAC‎‏‎‎‏‎"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‏‏‏‎‎‎‎‎‎‎‎‏‎‏‎‏‏‏‎‏‏‎‏‎‎‎‏‏‏‎‎‏‎‏‎‎‎‎‎‏‏‏‎‎‎‎‏‏‎‏‎‏‏‎‎‎‏‎CID‎‏‎‎‏‎"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‏‎‎‎‏‏‎‏‎‎‎‎‎‏‎‎‏‎‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‎‎‎‎‎‏‎‎‎‏‏‎Current subId:‎‏‎‎‏‎"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‏‏‎‎‏‎‏‎‎‎‏‎‎‎‎‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎‎‎‏‏‎‎‏‎‎‎‎‏‎‎‏‏‏‏‎‏‏‎‎‏‏‎‎SubId of default data SIM:‎‏‎‎‏‎"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‏‎‎‎‏‏‏‎‏‎‏‏‏‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‏‎‎‎‏‏‎‎DL Bandwidth (kbps):‎‏‎‎‏‎"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‎‎‏‏‎‏‎‏‏‎‏‏‏‎‏‎‎‏‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‎‏‎‎‏‏‎‎‏‏‏‏‎‎‎UL Bandwidth (kbps):‎‏‎‎‏‎"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‏‎‎‏‎‏‏‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‎‎‏‎Cell Location Info (deprecated):‎‏‎‎‏‎"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‎‎‎‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‏‎‎‎‏‎LTE Physical Channel Configuration:‎‏‎‎‏‎"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‏‎‎‎Cell Info Refresh Rate:‎‏‎‎‏‎"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‏‎‎‎‏‏‏‎‏‏‎‎‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‎‎‏‎‎‏‎‎‏‎‎‎‏‎‎‏‎‏‎‏‏‏‎‏‏‎All Cell Measurement Info:‎‏‎‎‏‎"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‎‎‎‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‎‎‏‏‏‏‎‎‎‏‎‏‏‎‏‏‎‎‏‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎Data Service:‎‏‎‎‏‎"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‎‎‎Roaming:‎‏‎‎‏‎"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‏‎‏‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‎‎‏‏‏‎‏‎‏‏‎‎‏‎‎‎‏‎‎‎‏‏‎‏‎‏‏‎‎‎‎‎IMEI:‎‏‎‎‏‎"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‏‎‏‎‎‏‎‏‎‎‏‏‎‎‏‏‎‎‎‏‎‎‎‏‏‎‏‎‎‏‏‎‎‎‎‎‎‎‎‎‎‏‏‏‎‎‏‎‎‎Call Redirect:‎‏‎‎‏‎"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‎‎‎‎‏‏‏‏‎‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‎‏‎‏‏‎‎‏‏‎‏‏‎‎‎‎‏‏‏‎‏‎Number of PPP Reset Since Boot:‎‏‎‎‏‎"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‎‎‏‎‏‏‎‏‏‎‎‏‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‎‏‏‎‎‎‏‎‎‏‎‏‏‎‏‎‏‎‏‎‎‏‎‎Current Network:‎‏‎‎‏‎"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‏‏‏‎‏‏‏‎‏‏‎‎‏‏‏‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‏‎‏‎‏‎‏‎‎‎‏‏‎‎‏‎Data Received:‎‏‎‎‏‎"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‎‏‏‎‏‎‏‏‏‏‏‎‎‏‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎Voice Service:‎‏‎‎‏‎"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‎‎‏‎‎‏‏‎‏‎‏‎‏‏‎‎‏‏‎‎‏‎‎‏‏‎‏‏‎‏‏‏‎‎‏‏‏‎‎‎Signal Strength:‎‏‎‎‏‎"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‏‎‏‎‎‎‏‎‎‏‎‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‏‎‎‏‎‏‏‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎Voice Call Status:‎‏‎‎‏‎"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‏‎‏‎‎‏‎‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‏‏‏‎Data Sent:‎‏‎‎‏‎"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‎‏‏‏‏‎‎‎‏‏‎‎‎‎‏‎‎‎‏‏‏‎‎Message Waiting:‎‏‎‎‏‎"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‎‏‎‏‎‎‎‎‎‏‏‎‏‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‏‏‎‏‎‎‏‎‏‏‎Phone Number:‎‏‎‎‏‎"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‎‏‏‏‏‎‏‎‎‏‏‎‏‏‎‏‎‏‏‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎‎‏‏‏‏‎‎‏‏‎‏‎‎‏‏‏‏‎‎‎‏‏‎‏‎‎Select Radio Band‎‏‎‎‏‎"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‏‏‏‎‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‎‎‎‏‏‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‏‎‎‎‎‏‏‎‎‎‏‎Voice Network Type:‎‏‎‎‏‎"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‏‏‎‎‎‏‎‎‎‏‏‏‎‏‎‏‎‎‎‏‏‎‏‎‏‏‎‏‏‏‏‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎Data Network Type:‎‏‎‎‏‎"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‏‎‏‎‎‏‏‎‏‏‎‏‏‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‎‏‏‎‎‎Select phone index‎‏‎‎‏‎"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‏‏‏‎‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‏‎‎‏‎‎‏‏‎‏‏‎‏‎‎‏‎‎Set Preferred Network Type:‎‏‎‎‏‎"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‏‏‎‏‏‎‎‎‏‏‏‎‎‏‎‎‏‏‏‎‏‏‎‏‏‎‎Ping Hostname(www.google.com) IPv4:‎‏‎‎‏‎"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‎‎‏‎‎‏‎‏‎‎‎‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‎‎‎‎‏‎‏‏‏‏‎‏‎‏‏‎Ping Hostname(www.google.com) IPv6:‎‏‎‎‏‎"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‎‏‏‏‎‏‎‎‎‎‏‎‏‎‏‏‎‎‏‏‎‎‏‎‎‏‎‏‎‎‏‏‏‏‎‎‎‏‎‏‎‎‎‏‏‎‎‏‏‏‎‎HTTP Client Test:‎‏‎‎‏‎"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‎‎‎‏‏‏‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‏‏‎‎‏‏‏‏‏‎‎‎‎‏‏‏‎‎Run Ping Test‎‏‎‎‏‎"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‏‎‏‎‎‏‏‎‏‎‏‎‏‏‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‏‎‏‎‎‏‎‏‎‏‏‎‎‎‏‏‎SMSC:‎‏‎‎‏‎"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‏‎‎‎‎‎‎‏‎‏‎‎‏‎‏‏‎‎‏‏‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‏‎‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎Update‎‏‎‎‏‎"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‏‎‎‎‎‎‏‏‎‏‎‎‎‏‎‎‎‏‎‎‏‎‎‏‎‏‎‏‎‎‎‎‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎‎‎‎‎Refresh‎‏‎‎‏‎"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‏‎‎‎‏‏‎‎‎‎‏‏‎‎‎‎‏‏‏‏‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‏‎‏‏‎‎Toggle DNS Check‎‏‎‎‏‎"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‏‎‎‎‏‎‎‏‏‎‎‏‏‏‏‏‎‎‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‏‏‎‎‏‎‎‎‎‏‎‎‎‎‏‎‎‎‎‎OEM-specific Info/Settings‎‏‎‎‏‎"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‎‎‎‎‎‎‎‎‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎‏‏‎‏‎‎‏‎‎‏‎‏‏‏‏‎‏‎‎‏‎‎‏‎‏‎‎Set Radio Band Mode‎‏‎‎‏‎"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‏‏‎‎‎‎‏‎‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‎‎‏‏‎‎‏‎‎‏‎‎‏‏‏‏‏‎‎‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‎Loading Band List…‎‏‎‎‏‎"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‏‎‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‏‏‎‏‏‏‏‎‎‏‎‏‏‏‎‎‎‎‎‏‏‏‎‏‎Set‎‏‎‎‏‎"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‎‎‎‎‎‏‎‏‎‏‎‏‏‏‎‎‎Unsuccessful‎‏‎‎‏‎"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‎‎‏‏‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‏‏‎‎‏‎‎‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‏‎‎‏‏‏‎Successful‎‏‎‎‏‎"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‏‏‎‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎Tablet info‎‏‎‎‏‎"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‎‎‏‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎‏‎‏‏‏‎‎‏‎‏‎‎‎‎‎‎‏‏‎‎‎‏‎‎‎‎‏‎‎‎‏‎‎‏‎Phone info‎‏‎‎‏‎"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‎‎‏‏‎‏‏‎‏‏‏‏‏‎‎‎‎‎‏‎‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‏‎‎‎‏‎‎‎‎‎‏‎‎‎‏‎‎‎‎Carrier Provisioning Info‎‏‎‎‏‎"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‎‎‏‎‎‎‎‎‏‏‏‎‎‎‏‏‏‎‏‎‎‎‎‏‎‏‏‏‏‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‎‎‏‏‎‏‎‎Trigger Carrier Provisioning‎‏‎‎‏‎"</string>
 </resources>
diff --git a/res/values-es-rUS/config.xml b/res/values-es-rUS/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-es-rUS/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 9196f8c..97a0cf4 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Número privado"</string>
     <string name="payphone" msgid="7936735771836716941">"Teléfono público"</string>
     <string name="onHold" msgid="6132725550015899006">"En espera"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mensaje de <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mensaje del proveedor"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Código de MMI iniciado"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Ejecutando código USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Código MMI cancelado"</string>
@@ -98,7 +100,7 @@
     <string name="sum_cw_enabled" msgid="3977308526187139996">"Durante una llamada, notificarme sobre las llamadas entrantes"</string>
     <string name="sum_cw_disabled" msgid="3658094589461768637">"Durante una llamada, notificarme sobre las llamadas entrantes"</string>
     <string name="call_forwarding_settings" msgid="8937130467468257671">"Desvío de llamadas"</string>
-    <string name="call_forwarding_settings_with_label" msgid="2345432813399564272">"Configuración de desvío de llamadas (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="call_forwarding_settings_with_label" msgid="2345432813399564272">"Configuración de desvío de llamada (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="labelCF" msgid="3578719437928476078">"Desvío de llamadas"</string>
     <string name="labelCFU" msgid="8870170873036279706">"Desviar siempre"</string>
     <string name="messageCFU" msgid="1361806450979589744">"Usar siempre este número"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Solo NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modo de red preferido: WCDMA preferido"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modo de red preferido: solo GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Modo de red preferido: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Modo de red preferido: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Modo de red preferido: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Modo de red preferido: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Modo de red preferido: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Modo de red preferido: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modo de red preferido: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Modo de red preferido: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Modo de red preferido: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Modo de red preferido: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Modo de red preferido: solo NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Modo de red preferido: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Modo de red preferido: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Modo de red preferido: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Modo de red preferido: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Modo de red preferido: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Modo de red preferido: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Modo de red preferido: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Modo de red preferido: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Modo de red preferido: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Modo de red preferido: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Llamando"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Red"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modo 4G LTE mejorado"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Varias categorías"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Varias categorías activadas"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Varias categorías desactivadas"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recomendado)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recomendado)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recomendado)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Eliminando número de marcación fija..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Número de marcación fija eliminado"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"No se actualizó el FDN porque ingresaste un PIN incorrecto."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"El NMF no se actualizó porque el número supera los 20 dígitos."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"No se actualizó el NMF porque el número supera los <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> dígitos."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"No se actualizó el FDN. El PIN2 era incorrecto o se rechazó el número de teléfono."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Ocurrió un error de funcionamiento con el número de marcado fijo."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Leyendo la tarjeta SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"No se puede realizar 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="2785803395047793634">"No se puede realizar la llamada. Marca un número de emergencia."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Las llamadas de emergencia no están disponibles"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Solo el propietario del dispositivo puede ingresar los códigos PIN/PUK"</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policía"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulancia"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Bomberos"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Llamada de Texto en tiempo real (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Permitir la mensajería en las llamadas de voz"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"El RTT brinda asistencia a las personas sordas o hipoacúsicas, que tienen algún trastorno del habla o necesitan una transcripción además de la voz.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Más información&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Las llamadas de RTT se guardan como las transcripciones de los mensajes\n       &lt;br&gt; - El RTT no está disponible para las videollamadas"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Nota: La función RTT no está disponible en roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY desactivado"</item>
     <item msgid="1449091874731375214">"TTY completo"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sí"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Descartar"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"El teléfono está en modo de devolución de llamadas de emergencia"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Hasta las <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">El teléfono estará en modo de devolución de llamada de emergencia durante <xliff:g id="COUNT_1">%s</xliff:g> minutos.\n¿Quieres salir ahora?</item>
+      <item quantity="one">El teléfono estará en modo de devolución de llamada de emergencia durante <xliff:g id="COUNT_0">%s</xliff:g> minuto.\n¿Quieres salir ahora?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Servicio"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuración"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Sin configurar&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Se desactivó la restricción de llamadas"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Cambiar contraseña"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Cambiar la contraseña para la restricción de llamadas"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"No se puede cambiar la contraseña para la restricción de llamadas."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"No se puede cambiar la contraseña para la restricción de llamadas"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Las contraseñas no coinciden"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Ingresa una contraseña que contenga 4 números"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Se cambió la contraseña"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmar contraseña"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Ingresa la contraseña"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Configuración de restricción de llamadas"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"¿Quieres desactivar todas las opciones de restricción de llamadas?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"La red está ocupada. Vuelve a realizar la llamada más tarde."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"La red está congestionada. Comunícate con tu operador de telefonía móvil para recibir asistencia."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Se desvió la llamada."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Para usar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, asegúrate de que los datos móviles estén activados para la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puedes cambiar esto en la configuración de la red móvil."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Para usar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, asegúrate de que los datos móviles y el roaming de datos estén activados para la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puedes cambiar esto en la configuración de la red móvil."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Descartar"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Habilitar la conexión de datos"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Inhabilitar la conexión de datos"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE aprovisionada"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videollamadas aprovisionadas"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Llamadas por Wi-Fi aprovisionadas"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence aprovisionados"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Datos de CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Habilitar DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"¿Quieres reiniciar el dispositivo?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Debes reiniciar el dispositivo para cambiar este parámetro de configuración."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Potencia de la señal móvil"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver libreta de direcciones de SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fija"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servicio"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Estado del servicio de IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Estado de IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrado"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"No registrado"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponible"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"No disponible"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registro de IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoz por LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoz por Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideollamada: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterfaz de UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"En servicio"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Fuera de servicio"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Solo llamadas de emergencia"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio desactivada"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Sin roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactivo"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Sonando"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Llamada en curso"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Desconectado"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Conectando"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Conectado"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendido"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Desconocido"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"paquetes"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ID secundario actual:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ID secundario de SIM de datos predeterminada:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Ancho de banda de descarga (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Ancho de banda de carga (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Datos de ubicación del celular (obsoleto):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuración del canal físico de LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frecuencia de actualización de datos del celular:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Información sobre las dimensiones del celular:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Servicio de datos:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redireccionamiento de llamada:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Cantidad de PPP restablecidos desde el inicio:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Red actual:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Datos recibidos:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Servicio de voz:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Potencia de la señal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Estado de la llamada de voz:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Datos enviados:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mensaje en espera:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Número de teléfono:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Seleccionar banda de radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipo de red de voz:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipo de red de datos:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Seleccionar guía telefónica"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Establecer el tipo de red preferida:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Hacer ping a IPv4 de nombre de host (www.google.com):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Hacer ping a IPv6 de nombre de host (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Prueba de cliente HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ejecutar prueba de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Actualizar"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualizar"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Activar o desactivar la comprobación de DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Configuración/Datos específicos del OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Establecer modo de banda de radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Cargando lista de bandas…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Establecer"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Incorrecto"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Correcto"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Información de la tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Información del teléfono"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Información del aprovisionamiento del proveedor"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Activar aprovisionamiento del proveedor"</string>
 </resources>
diff --git a/res/values-es/config.xml b/res/values-es/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-es/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 8a5d01a..3c7d185 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Número privado"</string>
     <string name="payphone" msgid="7936735771836716941">"Teléfono público"</string>
     <string name="onHold" msgid="6132725550015899006">"En espera"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Mensaje"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mensaje del operador"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"El código MMI se ha iniciado."</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Código USSD en ejecución..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"El código MMI se ha cancelado."</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE, TD-SCDMA, GSM o WCDMA"</item>
     <item msgid="8826479449402151312">"TD-SCDMA, CDMA, EvDo, GSM o WCDMA"</item>
     <item msgid="6284311629324843506">"LTE, TD-SCDMA, CDMA, EvDo, GSM o WCDMA"</item>
+    <item msgid="4738087170533378966">"Solo NR"</item>
+    <item msgid="2935877729588775187">"NR o LTE"</item>
+    <item msgid="8967513231424970529">"NR, LTE, CDMA o EvDo"</item>
+    <item msgid="1542643426479755015">"NR, LTE, GSM o WCDMA"</item>
+    <item msgid="5778162260258129841">"NR, LTE, CDMA, EvDo, GSM o WCDMA"</item>
+    <item msgid="8088614845214545367">"NR, LTE o WCDMA"</item>
+    <item msgid="6517428040626326776">"NR, LTE o TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR, LTE, TDSCDMA o GSM"</item>
+    <item msgid="4130965694947056705">"NR, LTE, TDSCDMA o WCDMA"</item>
+    <item msgid="3869566732842046032">"NR, LTE, TDSCDMA, GSM o WCDMA"</item>
+    <item msgid="3942770927563146543">"NR, LTE, TDSCDMA, CDMA, EvDo, GSM o WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modo de red preferido: WCDMA preferido"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modo de red preferido: solo GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Modo de red preferido: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Modo de red preferido: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Modo de red preferido: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferencia de modo de red: LTE, CDMA, EvDo, GSM o WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Modo de red preferido: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Modo de red preferido: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modo de red preferido: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Modo de red preferido: LTE, TD-SCDMA, GSM o WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Modo de red preferido: TD-SCDMA, CDMA, EvDo, GSM o WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Modo de red preferido: LTE, TD-SCDMA, CDMA, EvDo, GSM o WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferencia de modo de red: solo NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferencia de modo de red: NR o LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferencia de modo de red: NR, LTE, CDMA o EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferencia de modo de red: NR, LTE, GSM o WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferencia de modo de red: NR, LTE, CDMA, EvDo, GSM o WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferencia de modo de red: NR, LTE o WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferencia de modo de red: NR, LTE o TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferencia de modo de red: NR, LTE, TDSCDMA o GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferencia de modo de red: NR, LTE, TDSCDMA o WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferencia de modo de red: NR, LTE, TDSCDMA, GSM o WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferencia de modo de red: NR, LTE, TDSCDMA, CDMA, EvDo, GSM o WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Llamadas"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Red"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modo 4G LTE mejorado"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Categoría múltiple"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Categoría múltiple habilitada"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Categoría múltiple inhabilitada"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recomendado)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recomendado)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recomendado)"</string>
     <string name="network_global" msgid="3289646154407617631">"Mundial"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Eliminando número de marcación fija..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Se ha eliminado el número de marcación fija."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"No se ha actualizado FDN porque el código PIN que has introducido es incorrecto."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"No se ha podido actualizar FDN porque el número tiene más de 20 dígitos."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"No se ha podido actualizar FDN porque el número tiene más de <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> dígitos."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN no actualizado. El código PIN2 era incorrecto o se ha rechazado el número de teléfono."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Error de funcionamiento de número de marcación fija."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Leyendo desde tarjeta SIM…"</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"No se puede establecer 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="2785803395047793634">"No se puede establecer la llamada. Marca un número de emergencia."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"No se pueden hacer llamadas de emergencia"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Solo el propietario del dispositivo puede introducir el código PIN o PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policía"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulancia"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Bomberos"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Llamada de texto en tiempo real (TTR)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Permitir mensajes en una llamada de voz"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"La función TTR (texto en tiempo real) ofrece asistencia a las personas sordas o con discapacidades auditivas, que tienen algún trastorno del habla o que necesitan una transcripción además de la voz para comunicarse.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Más información&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Las llamadas de TTR se guardan como la transcripción de un mensaje.\n       &lt;br&gt; - La función TTR no está disponible en videollamadas."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Nota: TTR no está disponible en itinerancia"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY desactivado"</item>
     <item msgid="1449091874731375214">"TTY completo"</item>
@@ -611,6 +639,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sí"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Cerrar"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"El teléfono está en modo de devolución de llamada de emergencia"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Hasta las <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">El teléfono estará en modo de devolución de llamada de emergencia durante <xliff:g id="COUNT_1">%s</xliff:g> minutos.\n¿Quieres salir ahora?</item>
+      <item quantity="one">El teléfono estará en modo de devolución de llamada de emergencia durante <xliff:g id="COUNT_0">%s</xliff:g> minuto.\n¿Quieres salir ahora?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Servicio"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuración"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;No definido&gt;"</string>
@@ -750,7 +784,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Se ha desactivado el bloqueo de llamadas"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Cambiar contraseña"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Cambiar la contraseña de bloqueo de llamadas"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"No se puede cambiar la contraseña de bloqueo de llamadas."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"No se puede cambiar la contraseña de bloqueo de llamadas"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Las contraseñas no coinciden"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Introduce una contraseña con 4 números"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Se ha cambiado la contraseña"</string>
@@ -759,7 +793,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmar contraseña"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Introduce la contraseña"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Ajustes de bloqueo de llamadas"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"¿Quieres desactivar todos los ajustes de bloqueo de llamadas?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"La red está ocupada. Intenta llamar de nuevo más tarde."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"La red está saturada. Ponte en contacto con tu operador de telefonía móvil para solicitar ayuda."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Se ha derivado la llamada."</string>
@@ -789,4 +822,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Para utilizar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, los datos móviles deben estar activados en la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puedes cambiar esta opción en los ajustes de red móvil."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Para utilizar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, los datos móviles y la itinerancia de datos deben estar activados en la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puedes cambiar estas opciones en los ajustes de red móvil."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Cerrar"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Habilitar conexión de datos"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Inhabilitar conexión de datos"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE preparado"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videollamada preparada"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Llamada Wi-Fi preparada"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence preparados"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Datos de CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Habilitar DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"¿Quieres reiniciar el dispositivo?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Debes reiniciar el dispositivo para cambiar este ajuste."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Potencia de la señal móvil"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver libreta de direcciones de tarjeta SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fija"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servicio"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Estado del servicio IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Estado de IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrado"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"No registrado"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponible"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"No disponible"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registro en IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoz a través de LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoz a través de Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideollamadas: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterfaz UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"En servicio"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Fuera de servicio"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Solo llamadas de emergencia"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Señal móvil desactivada"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Itinerancia"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Sin itinerancia"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactivo"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Sonando"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Llamada en curso"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Desconectado"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Conectando"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Conectado"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendido"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Desconocido"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pqts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ID secundario actual:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ID secundario de la SIM de datos predeterminada:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Ancho de banda de bajada (Kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Ancho de banda de subida (Kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Información sobre la ubicación del teléfono (obsoleto):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuración del canal físico de LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frecuencia de actualización de la información del teléfono:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Información sobre las dimensiones de los teléfonos:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Servicio de datos:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Itinerancia:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redirección de llamadas:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Número de PPP restablecido desde el inicio:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Red actual:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Datos recibidos:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Servicio de voz:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Intensidad de la señal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Estado de la llamada de voz:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Datos enviados:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mensaje en espera:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Número de teléfono:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Seleccionar banda de señal móvil"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipo de red de voz:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipo de red de datos:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Seleccionar guía telefónica"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Establecer tipo de red preferido:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Hacer ping a IPv4 de nombre de host (www.google.com):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Hacer ping a IPv6 de nombre de host (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Prueba de cliente HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ejecutar prueba de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Actualizar"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualizar"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Activar o desactivar comprobación de DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Ajustes o información específica de OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Establecer modo de banda de señal móvil"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Cargando lista de bandas…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Seleccionar"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Incorrecto"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Correcto"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Información del tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Información sobre el teléfono"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Información de servicios del operador"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Activar servicios del operador"</string>
 </resources>
diff --git a/res/values-et/config.xml b/res/values-et/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-et/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index fd031ae..357276d 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Varjatud number"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefoniautomaat"</string>
     <string name="onHold" msgid="6132725550015899006">"Ootel"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Sõnum operaatorilt <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operaatori sõnum"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-kood käivitus"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-kood töötab ..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-kood tühistatud"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Ainult NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Eelistatud võrgurežiim: eelistatud WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Eelistatud võrgurežiim: ainult GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Eelistatud võrgurežiim: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Eelistatud võrgurežiim: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Eelistatud võrgurežiim: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Eelistatud võrgurežiim: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Eelistatud võrgurežiim: globaalne"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Eelistatud võrgurežiim: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Eelistatud võrgurežiim: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Eelistatud võrgurežiim: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Eelistatud võrgurežiim: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Eelistatud võrgurežiim: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Eelistatud võrgurežiim: ainult NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Eelistatud võrgurežiim: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Eelistatud võrgurežiim: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Eelistatud võrgurežiim: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Eelistatud võrgurežiim: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Eelistatud võrgurežiim: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Eelistatud võrgurežiim: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Eelistatud võrgurežiim: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Eelistatud võrgurežiim: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Eelistatud võrgurežiim: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Eelistatud võrgurežiim: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Helistamine"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Võrk"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Tõhustatud 4G LTE režiim"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multikategooria"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multi-kategooria lubatud"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multikategooria keelatud"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (soovitatud)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (soovitatav)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (soovitatav)"</string>
     <string name="network_global" msgid="3289646154407617631">"Üldine"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Fikseeritud valimisnumbri kustutamine…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Fikseeritud valimisnumber kustutatud."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN-i ei värskendatud, sest sisestasite vale PIN-koodi."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN-i ei värskendatud, sest number ületab 20 kohta."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN-i ei värskendatud, sest number ületab <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> kohta."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN-i ei värskendatud. PIN2 oli vale või lükati telefoninumber tagasi."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN-i toiming ebaõnnestus."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM-kaardilt lugemine ..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Ei saa helistada. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ei ole hädaabikõne number."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Ei saa helistada. Valige hädaabinumber."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Hädaabikõned pole saadaval"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"PIN-/PUK-koode saab sisestada ainult seadme omanik."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Politsei"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Kiirabi"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Tuletõrje"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Reaalajas teksti saatmise (RTT) kõne"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Häälkõnes sõnumside lubamine"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT aitab kurte, kuulmis- või kõnepuudega helistajaid või neid, kes vajavad lisaks häälele muud abi.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Lisateave&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT-kõned salvestatakse sõnumi trankriptsioonina\n       &lt;br&gt; – RTT pole saadaval videokõnede puhul"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Märkus. RTT pole rändluse ajal saadaval"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY väljas"</item>
     <item msgid="1449091874731375214">"TTY-täisrežiim"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Jah"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ei"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Loobu"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon on hädaolukorra tagasihelistusrežiimis"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Kuni <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefon on hädaolukorra tagasihelistusrežiimis <xliff:g id="COUNT_1">%s</xliff:g> minutit.\nKas soovite kohe väljuda?</item>
+      <item quantity="one">Telefon on hädaolukorra tagasihelistusrežiimis <xliff:g id="COUNT_0">%s</xliff:g> minut.\nKas soovite kohe väljuda?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Teenus"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Seadistus"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Määramata&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Kõnede blokeerimine on inaktiveeritud"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Parooli muutmine"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Kõnede blokeerimise parooli muutmine"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Kõnede blokeerimise parooli ei saa muuta."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Kõnede blokeerimise parooli ei saa muuta"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Paroolid ei kattu"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Neljanumbrilise parooli sisestamine"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Parool on muudetud"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Parooli kinnitamine"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Parooli sisestamine"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Kõnede blokeerimise seaded"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Kas inaktiveerida kõik kõnede blokeerimise seaded?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Võrk on hõivatud. Proovige hiljem uuesti helistada."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Võrk on hõivatud. Võtke abi saamiseks ühendust mobiilioperaatoriga."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Kõne suunati ümber."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Teenuse <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> kasutamiseks veenduge, et mobiilne andmeside oleks SIM-kaardil <xliff:g id="SIM_NUMBER">%2$d</xliff:g> sisse lülitatud. Seda saab muuta mobiilsidevõrgu seadetes."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Teenuse <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> kasutamiseks veenduge, et mobiilne andmeside ja andmesiderändlus oleks SIM-kaardil <xliff:g id="SIM_NUMBER">%2$d</xliff:g> sisse lülitatud. Seda saab muuta mobiilsidevõrgu seadetes."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Loobu"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Luba andmesideühendus"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Keela andmesideühendus"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE on ette valmistatud"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videokõne on ette valmistatud"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"WiFi-kõne on ette valmistatud"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence on ette valmistatud"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-i andmed"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Luba DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Kas taaskäivitada seade?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Selle seade muutmiseks peate seadme taaskäivitama."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Taaskäivita"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Tühista"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobiiliraadio toide"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Kuva SIM-i aadressiraamat"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Kuva fikseeritud valimisnumbrid"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Kuva teenuse valimise numbrid"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-teenuse olek"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-i olek"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registreeritud"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Ei ole registreeritud"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Saadaval"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Pole saadaval"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-i registreerimine: <xliff:g id="STATUS">%1$s</xliff:g>\nHäälvestlus LTE kaudu: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nHäälvestlus WiFi kaudu: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideokõne: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-liides: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Teenus toimib"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Teenus ei toimi"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Ainult hädaabikõned"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Raadio on väljas"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Rändlus"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Rändlus puudub"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Tegevusetu"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Helisemine"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Kõne on pooleli"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Pole ühendatud"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Ühendamine"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Ühendatud"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Peatatud"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Teadmata"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"baiti"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Praegune alam-ID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Andmete vaike-SIM-kaardi alam-ID:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-i ribalaius (kbit/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-i ribalaius (kbit/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Kärje asukohateave (tugi on katkestatud):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE füüsilise kanali konfiguratsioon:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Kärje teabe värskendamissagedus:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Kõik kärje mõõteandmed:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Andmesideteenus:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Rändlus:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Kõne ümbersuunamine:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP lähtestuste arv alates käivitumisest:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Praegune võrk:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Vastuvõetud andmed:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Häälteenus:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signaali tugevus:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Häälkõne olek:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Saadetud andmed:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Ootel sõnum:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefoninumber:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Raadioriba valimine"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Häälvõrgu tüüp:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Andmesidevõrgu tüüp:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Telefoni registri valimine"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Eelistatud võrgutüübi määramine:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Pingi hosti nimi (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Pingi hosti nimi (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-kliendi test:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Pingimistesti käitamine"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Värskendamine"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Värskendamine"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS-i kontrolli sisse- või väljalülitamine"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-i teave/seaded"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Raadio ribarežiimi määramine"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Ribaloendi laadimine …"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Määra"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Ebaõnnestus"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Õnnestus"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Teave tahvelarvuti kohta"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefoniteave"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operaatori ettevalmistamise teave"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Operaatori ettevalmistamise päästik"</string>
 </resources>
diff --git a/res/values-eu/config.xml b/res/values-eu/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-eu/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index b23e8bb..205487c 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Zenbaki pribatua"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefono publikoa"</string>
     <string name="onHold" msgid="6132725550015899006">"Zain"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Mezua"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operadorearen mezua"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI kodea hasi da"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD kodea abiarazten…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI kodea bertan behera utzi da"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR soilik"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Sare modu hobetsia: WCDMA nahiago"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Sare modu hobetsia: GSM soilik"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Sare modu hobetsia: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Sare modu hobetsia: GSM / WCDMA / LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Sare modu hobetsia: CDMA + LTE / EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Sare modu hobetsia: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Sare modu hobetsia: orokorra"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Sare modu hobetsia: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Sareko modu hobetsia: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Sareko modu hobetsia: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Sareko modu hobetsia: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Sareko modu hobetsia: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Sare modu hobetsia: NR soilik"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Sare modu hobetsia: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Sare modu hobetsia: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Sare modu hobetsia: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Sare modu hobetsia: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Sare modu hobetsia: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Sare modu hobetsia: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Sare modu hobetsia: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Sare modu hobetsia: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Sare modu hobetsia: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Sare modu hobetsia: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Deiak"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Sarea"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"4G LTE modu hobetua"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Askotariko kategoriak"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Askotariko kategoriak gaituta"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Askotariko kategoriak desgaituta"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (gomendatua)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (gomendatua)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (gomendatua)"</string>
     <string name="network_global" msgid="3289646154407617631">"Orokorra"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Markatze finkoko zenbakia ezabatzen…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Markatze finkoko zenbakia ezabatu da."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Ez da eguneratu markatze finkoko zenbakia, PIN kode okerra idatzi duzulako."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Ez da eguneratu markatze finkoko zenbakia, 20 digitu baino gehiago dituelako."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Ez da eguneratu markatze finkoko zenbakia, zenbakiak <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digitu baino gehiago dituelako."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Ez da eguneratu markatze finkoko zenbakia. PIN2 kodea ez da zuzena edo telefono-zenbakia baztertu da."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Markatze finkoko zenbakiaren eragiketak huts egin du."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM txarteletik irakurtzen…"</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Ezin da deitu. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ez da larrialdietarako zenbakia."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Ezin da deitu. Markatu larrialdietarako zenbakia."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Ezin da egin larrialdi-deirik"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Gailuaren jabeak bakarrik idatz ditzake PIN/PUK kodeak."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polizia"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Anbulantzia"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Sua"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Deietan testua bidaltzeko eginbidea"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Baimendu mezuak bidali eta jasotzea ahots-deien barruan"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Deietan testua bidaltzeko eginbideak deitzaile gorrei, entzumen-arazoak dituztenei, hitz egiteko ezintasunen bat dutenei edota ahotsaz gain beste makuluren bat behar dutenei laguntzen die.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Lortu informazio gehiago&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Deietan testua bidaltzeko eginbidearekin egindako deiak mezu-transkripzio gisa gordetzen dira.\n       &lt;br&gt; - Deietan testua bidaltzeko eginbidea ez da bateragarria bideo-deiekin."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Oharra: Deietan testua bidaltzeko eginbidea ez dago erabilgarri ibiltaritzan"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY desaktibatuta"</item>
     <item msgid="1449091874731375214">"TTY osoa"</item>
@@ -611,6 +639,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Bai"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ez"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Baztertu"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Larrialdi-zerbitzuen deiak jasotzeko moduan dago telefonoa"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> arte"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefonoa <xliff:g id="COUNT_1">%s</xliff:g> minutuz egongo da larrialdi-zerbitzuen deiak jasotzeko moduan.\nIrten nahi duzu?</item>
+      <item quantity="one">Telefonoa <xliff:g id="COUNT_0">%s</xliff:g> minutuz egongo da larrialdi-zerbitzuen deiak jasotzeko moduan.\nIrten nahi duzu?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Zerbitzua"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Konfigurazioa"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ezarri gabe&gt;"</string>
@@ -750,7 +784,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Desaktibatu dira deiak debekatzeko ezarpenak"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Aldatu pasahitza"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Aldatu deiak debekatzeko pasahitza"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Ezin da aldatu deiak debekatzeko pasahitza."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Ezin da aldatu deiak debekatzeko pasahitza"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Pasahitzak ez datoz bat"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Idatzi 4 zenbakiko pasahitz bat"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Aldatu da pasahitza"</string>
@@ -759,7 +793,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Berretsi pasahitza"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Idatzi pasahitza"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Deiak debekatzeko ezarpenak"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deiak debekatzeko ezarpen guztiak desaktibatu nahi dituzu?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Sarea okupatuta dago. Saiatu berriro deitzen geroago."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Sareak gainezka egin du. Laguntza lortzeko, jarri mugikorraren operadorearekin harremanetan."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Automatikoki desbideratu da deia."</string>
@@ -789,4 +822,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> erabiltzeko, ziurtatu datu-konexioa aktibatuta dagoela <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM txartelean. Sare mugikorren ezarpenetan alda dezakezu aukera hori."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> erabiltzeko, ziurtatu datu-konexioa eta datu-ibiltaritza aktibatuta daudela <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM txartelean. Sare mugikorren ezarpenetan alda ditzakezu aukera horiek."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Baztertu"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Gaitu datu-konexioa"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Desgaitu datu-konexioa"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE hornituta"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Bideo-deiak aktibatuta"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi bidezko deiak aktibatuta"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence hornitu da"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS datuak"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Gaitu DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Gailua berrabiarazi nahi duzu?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Ezarpen hau aldatzeko, gailua berrabiarazi egin behar duzu."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Berrabiarazi"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Utzi"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Sare mugikor bidezko irratiaren indarra"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ikusi SIMeko kontaktuak"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ikusi markatze finkoko zenbakiak"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ikusi zerbitzuaren markatze-zenbakiak"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS zerbitzuaren egoera"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS egoera"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Erregistratuta"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Erregistratu gabe"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Libre"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Ez dago erabilgarri"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS erregistroa: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE bidezko ahots-deiak: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWifi bidezko ahots-deiak: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nBideo-deiak: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interfazea: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Erabilgarri"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ez erabilgarri"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Larrialdi-deiak soilik"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Itzali irratia"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Ibiltaritza"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ez dago ibiltaritzan"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inaktibo"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Tonua jotzen"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Deia abian da"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Deskonektatuta"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Konektatzen"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Konektatuta"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Behin-behinean itxitakoak"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Ezezaguna"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"byte"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Uneko azpiIDa:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Datu-konexioetarako SIM lehenetsiaren azpiIDa:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Deskargatzeko banda-zabalera (Kb/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Kargen banda-zabalera (Kb/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Sare mugikorraren kokapenaren informazioa (zaharkitua):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE kanal fisikoaren konfigurazioa:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Sare mugikorraren informazioa eguneratzeko maiztasuna:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Sare mugikorraren neurketa guztien informazioa:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datu-zerbitzua:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Ibiltaritza:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Dei-desbideratzea:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP berrezarpen kopurua abiarazi ezkero:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Uneko sarea:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Jasotako datuak:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Ahots-deien zerbitzua:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Seinalearen indarra:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Ahots-deiaren egoera:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Bidalitako datuak:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mezua zain:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefono-zenbakia:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Hautatu irrati-banda"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Ahots-deien sare mota:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Datu-sare mota:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Hautatu telefonoaren indizea"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Ezarri sare mota hobetsia:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping egiteko ostalari-izena (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping egiteko ostalari-izena (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP bezeroaren proba:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Egin ping-proba"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Eguneratu"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Freskatu"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Aldatu DNS egiaztapenaren egoera"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Jatorrizko fabrikatzailearen berariazko informazioa edota ezarpenak"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Ezarri irrati-bandaren modua"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Banden zerrenda kargatzen…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Ezarri"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Entregatu gabe"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Ongi"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tabletaren informazioa"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefonoaren informazioa"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operadorearen hornikuntza-informazioa"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Abiarazi operadorearen hornikuntza"</string>
 </resources>
diff --git a/res/values-fa/config.xml b/res/values-fa/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-fa/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 02d5400..196c75b 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"شماره خصوصی"</string>
     <string name="payphone" msgid="7936735771836716941">"تلفن عمومی"</string>
     <string name="onHold" msgid="6132725550015899006">"در انتظار"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"پیام <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"پیام شرکت مخابراتی"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"‏کد MMI راه‌اندازی شد"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"‏در حال اجرای کد USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"‏کد MMI لغو شد"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"‏فقط NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"‏حالت شبکه برگزیده: WCDMA برگزیده"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"‏حالت شبکه برگزیده: فقط GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"‏حالت شبکه برگزیده: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"‏حالت شبکه برگزیده: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"‏حالت شبکه برگزیده: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"‏حالت شبکه برگزیده: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"حالت شبکه برگزیده: سراسری"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"‏حالت شبکه برگزیده: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"‏حالت شبکه برگزیده: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"‏حالت شبکه برگزیده: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"‏حالت شبکه برگزیده: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"‏حالت شبکه برگزیده: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"‏حالت شبکه برگزیده: فقط NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"‏حالت شبکه برگزیده: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"‏حالت شبکه برگزیده: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"‏حالت شبکه برگزیده: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"‏حالت شبکه برگزیده: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"‏حالت شبکه برگزیده: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"‏حالت شبکه برگزیده: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"‏حالت شبکه برگزیده: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"‏حالت شبکه برگزیده: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"‏حالت شبکه برگزیده: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"‏حالت شبکه برگزیده: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"درحال تماس"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"شبکه"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"‏حالت پیشرفته 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"دسته‌های متعدد"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"دسته‌های متعدد فعال شد"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"دسته‌های متعدد غیر فعال شد"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (توصیه‌شده)"</string>
     <string name="network_lte" msgid="7206879277095094280">"‏LTE (توصیه شده)"</string>
     <string name="network_4G" msgid="6800527815504223913">"‏4G (توصیه شده)"</string>
     <string name="network_global" msgid="3289646154407617631">"سراسری"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"در حال حذف شماره شماره گیری ثابت..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"شماره شماره گیری ثابت حذف شد."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"‏FDN به‌روز نشد زیرا یک پین نادرست تایپ کردید."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"‏FDN به‌روزرسانی نشد زیرا شماره نمی‌تواند بیش از ۲۰ رقم داشته باشد."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"‏FDN به‌روزرسانی نشد، زیرا شماره از <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> رقم بیشتر است."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"‏FDN به‌روز نشد. پین۲ اشتباه بود یا شماره تلفن رد شد."</string>
     <string name="fdn_failed" msgid="216592346853420250">"‏عملیات FDN ناموفق بود."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"در حال خواندن سیم کارت..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"نمی‌توانید تماس بگیرید. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> یک شماره اضطراری نیست."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"نمی‌ توانید تماس بگیرید. یک شماره اضطراری را شماره‌گیری کنید."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"تماس اضطراری دردسترس نیست"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"‏فقط مالک دستگاه می‌تواند کدهای پین/PUK را وارد کند."</string>
     <string name="police_type_description" msgid="2819533883972081757">"پلیس"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"آمبولانس"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"آتش"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"‏تماس نوشتار هم‌زمان (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"پیام‌رسانی در تماس صوتی مجاز است"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"‏«نوشتار هم‌زمان» به تماس گیرندگان ناشنوا، دارای مشکل شنوایی، دارای ناتوانی گفتاری یا افرادی که به چیزی بیش از صدا نیاز دارند کمک می‌کند.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;بیشتر بدانید&lt;/a&gt;\n       ‏&lt;br&gt;&lt;br&gt; تماس‌های «نوشتار هم‌زمان» به‌صورت ترانویسی پیام ذخیره می‌شود\n       &lt;br&gt; «نوشتار هم‌زمان» برای تماس‌های ویدیویی دردسترس نیست"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"نکته: «نوشتار هم‌زمان» در هنگام فراگردی دردسترس نیست"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"‏TTY خاموش"</item>
     <item msgid="1449091874731375214">"‏TTY پر است"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"بله"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"نه"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"رد کردن"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"تلفن در حالت «تماس اضطراری» است"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"تا<xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">تلفن به مدت <xliff:g id="COUNT_1">%s</xliff:g> دقیقه در حالت «تماس اضطراری» خواهد بود.\nمی‌خواهید اکنون خارج شوید؟</item>
+      <item quantity="other">تلفن به مدت <xliff:g id="COUNT_1">%s</xliff:g> دقیقه در حالت «تماس اضطراری» خواهد بود.\nمی‌خواهید اکنون خارج شوید؟</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"سرویس"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"تنظیم"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"‏&lt;تنظیم نشده&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"محدودیت تماس غیرفعال شد"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"تغییر گذرواژه"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"تغییر گذرواژه محدودیت تماس"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"نمی‌توان گذرواژه محدودیت تماس را تغییر داد."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"نمی‌توان گذرواژه محدودیت تماس را تغییر داد"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"گذرواژه‌ها مطابقت ندارند"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"گذرواژه‌ای با ۴ رقم وارد کنید"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"گذرواژه تغییر کرد"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"تأیید گذرواژه"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"گذرواژه را وارد کنید"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"تنظیمات محدودیت تماس"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"همه تنظیمات محدودیت تماس غیرفعال شود؟"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"شبکه مشغول است. لطفاً بعداً دوباره تماس بگیرید."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"شبکه شلوغ است. برای کمک، با اپراتور دستگاه همراه تماس بگیرید."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"تماس برگردانده شد."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"برای استفاده از <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>، مطمئن شوید داده تلفن همراه برای سیم‌کارت <xliff:g id="SIM_NUMBER">%2$d</xliff:g> روشن باشد. می‌توانید در تنظیمات شبکه تلفن همراه این تنظیم را تغییر دهید."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"برای استفاده از <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>، مطمئن شوید داده تلفن همراه و فراگردی داده برای سیم‌کارت <xliff:g id="SIM_NUMBER">%2$d</xliff:g> روشن باشد. می‌توانید در تنظیمات شبکه تلفن همراه این تنظیمات را تغییر دهید."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"رد کردن"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"فعال کردن اتصال داده"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"غیرفعال کردن اتصال داده"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"‏مشروط به VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"مجوز تماس تصویری داده شد"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"‏مجوز تماس با Wifi داده شد"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"‏EAB/حضور مشروط است"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"‏داده‌های Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"‏فعال کردن DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"دستگاه بازراه‌اندازی شود؟"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"برای تغییر این تنظیم، باید دستگاه را بازراه‌اندازی کنید."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"بازراه‌اندازی"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"لغو"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"توان رادیوی تلفن همراه"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"مشاهده دفترچه نشانی سیم‌کارت"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"مشاهده شماره‌های شماره‌گیری ثابت"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"مشاهده شماره‌های شماره‌گیری سرویس"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"‏وضعیت سرویس IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"‏وضعیت IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ثبت‌شده"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"ثبت‌نشده"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"دردسترس"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"دردسترس نیست"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"‏ثبت IMS:‏ <xliff:g id="STATUS">%1$s</xliff:g>\nصدا ازطریق LTE‏: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nصدا ازطریق WiFi‏: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\n‏تماس ویدیویی: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nواسط UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"سرویس دارد"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"خارج از سرویس"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"فقط تماس‌های اضطراری"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"رادیو خاموش"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"فراگردی"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"بدون فراگردی"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"راکد"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"درحال زنگ خوردن"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"تماس درحال انجام"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"اتصال قطع است"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"درحال اتصال"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"متصل"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"تعلیق‌شده"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"نامشخص"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"بایت"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"‏subId کنونی:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"‏SubId مربوط به سیم‌کارت داده پیش‌فرض:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"‏پهنای باند DL (کیلوبیت بر ثانیه):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"‏پهنای باند UL (کیلوبیت بر ثانیه):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"اطلاعات مکان شبکه همراه (منسوخ شده):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"‏پیکربندی کانال فیزیکی LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"نرخ بازخوانی اطلاعات شبکه همراه:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"همه اطلاعات اندازه‌گیری شبکه همراه:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"سرویس داده:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"فراگردی:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"هدایت تماس:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"‏تعداد بازنشانی PPP از زمان راه‌اندازی:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"شبکه کنونی:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"داده دریافت‌شده:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"سرویس صوتی:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"قدرت سیگنال:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"وضعیت تماس صوتی:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"داده ارسال‌شده:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"پیام در انتظار:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"شماره تلفن:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"انتخاب باند رادیو"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"نوع شبکه صوتی:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"نوع شبکه داده:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"انتخاب نمایه تلفن"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"تنظیم نوع شبکه برگزیده:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"‏پینگ کردن نام میزبان (www.google.com)‏ IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"‏پینگ کردن نام میزبان (www.google.com)‏ IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"‏آزمایش کارخواه HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"اجرای آزمایش پینگ"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"به‌روزرسانی"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"بازخوانی"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"‏تغییر وضعیت علامت DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"‏تنظیمات/اطلاعات خاص OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"تنظیم حالت باند رادیو"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"درحال بار کردن فهرست باند…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"تنظیم"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ناموفق"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"موفقیت‌آمیز"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"اطلاعات رایانه لوحی"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"اطلاعات تلفن"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"اطلاعات ارائه شرکت مخابراتی"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"شروع ارائه شرکت مخابراتی"</string>
 </resources>
diff --git a/res/values-fi/config.xml b/res/values-fi/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-fi/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index ae2384c..4dee80f 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Salainen numero"</string>
     <string name="payphone" msgid="7936735771836716941">"Maksupuhelin"</string>
     <string name="onHold" msgid="6132725550015899006">"Pidossa"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>-viesti"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operaattorin viesti"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-koodi aloitettu"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-koodi käytössä..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-koodi peruutettu"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Vain NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Ensisijainen verkkotila: ensisijaisesti WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Ensisijainen verkkotila: vain GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Ensisijainen verkkotila: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Ensisijainen verkkotila: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Ensisijainen verkkotila: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Ensisijainen verkkotila: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Ensisijainen verkkotila: Maailmanlaajuinen"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Ensisijainen verkkotila: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Ensisijainen verkkotila: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Ensisijainen verkkotila: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Ensisijainen verkkotila: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Ensisijainen verkkotila: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Ensisijainen verkkotila: vain NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Ensisijainen verkkotila: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Ensisijainen verkkotila: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Ensisijainen verkkotila: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Ensisijainen verkkotila: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Ensisijainen verkkotila: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Ensisijainen verkkotila: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Ensisijainen verkkotila: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Ensisijainen verkkotila: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Ensisijainen verkkotila: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Ensisijainen verkkotila: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Soitetaan"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Verkko"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Enhanced 4G LTE -tila"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Useat luokat"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Useat luokat käytössä"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Useat luokat pois käytöstä"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (suositeltu)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (suositus)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (suositus)"</string>
     <string name="network_global" msgid="3289646154407617631">"Maailmanlaajuinen"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Poistetaan sallittua numeroa…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Sallittu numero poistettu."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Sallittuja numeroita ei päivitetty, koska annoit väärän PIN-koodin."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Sallittuja numeroita ei päivitetty, koska numerossa oli yli 20 merkkiä."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Sallittuja numeroita ei päivitetty, koska numerossa oli yli <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> merkkiä."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN-numeroa ei päivitetty. PIN2 on virheellinen tai puhelinnumero hylättiin."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN-toiminto epäonnistui."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Luetaan SIM-korttia…"</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Puhelua ei voi soittaa. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ei ole hätänumero."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Puhelua ei voi soittaa. Valitse hätänumero."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Hätäpuhelut eivät ole käytettävissä"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Vain laitteen omistaja voi lisätä PIN- ja PUK-koodeja."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Poliisi"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulanssi"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Palokunta"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"RTT-puhelu (puhelusta lähetettävä teksti)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Salli viestit äänipuheluissa"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT-toiminto auttaa kuuroja sekä käyttäjiä, joilla on kuulo‑ tai puhehäiriöitä tai jotka tarvitsevat muuta tukea pelkän puheen lisäksi.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Lisätietoja&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT-puhelut tallennetaan litterointiviestinä.\n       &lt;br&gt; – RTT ei ole käytettävissä videopuheluissa."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Huom. Puhelusta lähetettävä teksti (RTT) ei ole käytettävissä roaming-tilassa"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY pois käytöstä"</item>
     <item msgid="1449091874731375214">"TTY täynnä"</item>
@@ -611,6 +639,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Kyllä"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ei"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Hylkää"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Puhelin on hätäpuhelujen takaisinsoittotilassa."</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> asti"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Puhelin on hätäpuhelujen takaisinsoittotilassa <xliff:g id="COUNT_1">%s</xliff:g> minuutin ajan.\nHaluatko poistua nyt?</item>
+      <item quantity="one">Puhelin on hätäpuhelujen takaisinsoittotilassa <xliff:g id="COUNT_0">%s</xliff:g> minuutin ajan.\nHaluatko poistua nyt?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Palveluntarjoaja"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Asetukset"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ei asetettu&gt;"</string>
@@ -750,7 +784,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Puhelunesto poistettu käytöstä"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Vaihda salasana"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Vaihda puheluneston salasana"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Puheluneston salasanaa ei voi vaihtaa."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Puheluneston salasanaa ei voi vaihtaa"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Salasanat eivät täsmää"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Anna nelinumeroinen salasana"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Salasana vaihdettu"</string>
@@ -759,7 +793,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Vahvista salasana"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Lisää salasana"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Puhelunestoasetukset"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Poistetaanko kaikki puhelunestoasetukset käytöstä?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Verkko on varattu. Yritä soittaa myöhemmin uudelleen."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Verkossa on ruuhkaa. Kysy ohjeita operaattoriltasi."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Puhelu siirretty automaattisesti."</string>
@@ -789,4 +822,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> toimii, jos mobiilidata on käytössä SIM-kortilla <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Voit ottaa mobiilidatan käyttöön mobiiliverkkoasetuksista."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> toimii, jos mobiilidata ja roaming ovat käytössä SIM-kortilla <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Voit ottaa ne käyttöön mobiiliverkkoasetuksista."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ohita"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Ota tiedonsiirto käyttöön"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Poista tiedonsiirto käytöstä"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTEn hallinnoima"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videopuhelukäyttäjiä hallitaan"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi-puhelukäyttäjiä hallitaan"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/läsnäolo hallinnoitu"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs-data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Ota DSDS käyttöön"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Käynnistä uudelleen?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Laite on käynnistettävä uudelleen asetuksen muuttamiseksi."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Käynnistä uudelleen"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Peruuta"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobiiliradion voimakkuus"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Näytä SIM-kortin osoitekirja"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Näytä sallitut numerot"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Näytä sallitut palvelunumerot"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-palvelun tila"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-tila"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Rekisteröity"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Ei rekisteröitynyt"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Saatavilla"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Ei käytettävissä"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-rekisteröinti: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE-äänipuhelut: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWi-Fi-äänipuhelut: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideopuhelut: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-käyttöliittymä: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Kuuluvuusalueella"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Katvealueella"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Vain hätäpuhelut"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio pois päältä"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ei roaming-tilassa"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Epäaktiivinen"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Soi"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Puhelu kesken"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Yhteys katkaistu"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Yhdistetään"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Yhdistetty"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Jäädytetty"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Tuntematon"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pakettia"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"tavua"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Nykyinen alitunnus:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Oletusarvoisen data-SIM-kortin alitunnus:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-kaistanleveys (kt/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-kaistanleveys (kt/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Matkapuhelimen sijaintitiedot (poistettu käytöstä):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fyysisen LTE-kanavan kokoonpano:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Matkapuhelintietojen päivitysaikaväli:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Matkapuhelimen kaikki mittaustiedot:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datapalvelu:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI-koodi:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Puhelujen uudelleenohjaus:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP-palautuksien lukumäärä käynnistyksen jälkeen:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Nykyinen verkko:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Vastaanotetut tiedot:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Puhelupalvelu:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signaalin vahvuus:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Äänipuhelun tila:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Lähetetyt tiedot:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Viesti odottaa:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Puhelinnumero:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Valitse radiotaajuus"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Äänipuhelujen verkon tyyppi:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tietoverkon tyyppi:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Valitse puhelimen hakemisto"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Aseta ensisijainen verkon tyyppi:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping-kutsu isäntänimelle (www.google.com), IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping-kutsu isäntänimelle (www.google.com), IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-asiakastesti:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Suorita ping-testi"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Päivitä"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Päivitä"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Ota DNS-tarkistus käyttöön tai poista se käytöstä"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-kohtaiset tiedot/asetukset"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Radion taajuustilan valinta"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Ladataan taajuusluetteloa…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Aseta"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Epäonnistui"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Onnistui"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tabletin tiedot"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Puhelimen tiedot"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operaattorin hallintatiedot"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Ota operaattorin hallinta käyttöön"</string>
 </resources>
diff --git a/res/values-fr-rCA/config.xml b/res/values-fr-rCA/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-fr-rCA/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 2cf984f..991db01 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Numéro privé"</string>
     <string name="payphone" msgid="7936735771836716941">"Cabine téléphonique"</string>
     <string name="onHold" msgid="6132725550015899006">"En attente"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Message <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Message d\'opérateur"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Le code IHM a été lancé."</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Exécution du code USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Code IHM annulé"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR seulement"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Mode réseau préféré : WCDMA de préférence"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Mode réseau préféré : GSM uniquement"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Mode réseau préféré : LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Mode réseau préféré : GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Mode réseau préféré : CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Mode réseau préféré : LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Mode réseau préféré : général"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Mode réseau préféré : LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modes réseaux préférés : LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Mode réseau préféré : LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Mode réseau préféré : TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Mode réseau préféré : LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Mode réseau préféré : NR seulement"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Mode réseau préféré : NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Mode réseau préféré : NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Mode réseau préféré : NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Mode réseau préféré : NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Mode réseau préféré : NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Mode réseau préféré : NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Mode réseau préféré : NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Mode réseau préféré : NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Mode réseau préféré : NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Mode réseau préféré : NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Appels"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Réseau"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Mode LTE 4G avancé"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-catégories"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Option \"Multi-catégories\" activée"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Option \"Multi-catégories\" désactivée"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (conseillé)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recommandé)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recommandé)"</string>
     <string name="network_global" msgid="3289646154407617631">"International"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Suppression du numéro autorisé…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Numéro autorisé supprimé"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Le numéro autorisé n\'a pas été mis à jour, car vous avez saisi un NIP incorrect."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Le NAF n\'a pas été mis à jour, car le numéro comporte plus de 20 chiffres."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Le NAF n\'a pas été mis à jour, car le numéro comporte plus de <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> chiffres."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Le numéro autorisé n\'a pas été mis à jour. Soit le NIP2 est incorrect, soit le numéro de téléphone a été rejeté."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Échec de l\'opération FDN."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lecture de la carte SIM…"</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Appel impossible. <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="2785803395047793634">"Appel impossible. Composez un numéro d\'urgence."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Appels d\'urgence non disponibles"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Seul le propriétaire de l\'appareil peut entrer un NIP ou un code PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Police"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Incendie"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Appel texte en temps réel (TTR)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Autoriser l\'utilisation de la messagerie lors des appels vocaux"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"La fonctionnalité TTR aide les appelants qui sont sourds ou malentendants, qui ont un trouble de la parole ou pour qui la voix ne suffit pas.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;En savoir plus&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Les appels TTR sont enregistrés en tant que transcriptions de messages\n       &lt;br&gt; - La fonctionnalité TTR n\'est pas disponible pour les appels vidéo"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Remarque : Les messages TTR ne sont pas disponibles en itinérance"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY désactivé"</item>
     <item msgid="1449091874731375214">"TTY complet"</item>
@@ -611,6 +639,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Oui"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Non"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ignorer"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Le téléphone est en mode de rappel d\'urgence"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Jusqu\'à <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Le mode de rappel d\'urgence sera activé sur le téléphone pour une durée de <xliff:g id="COUNT_1">%s</xliff:g> minute.\nVoulez-vous quitter ce mode maintenant?</item>
+      <item quantity="other">Le mode de rappel d\'urgence sera activé sur le téléphone pour une durée de <xliff:g id="COUNT_1">%s</xliff:g> minutes.\nVoulez-vous quitter ce mode maintenant?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Service"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuration"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Non défini&gt;"</string>
@@ -750,7 +784,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Interdiction d\'appel désactivée"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Modifiez le mot de passe"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Modifiez le mot de passe d\'interdiction d\'appel"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Impossible de modifier le mot de passe d\'interdiction d\'appel."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Impossible de modifier le mot de passe d\'interdiction d\'appel"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Les mots de passe ne concordent pas"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Entrez un mot de passe à quatre chiffres"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Mot de passe modifié"</string>
@@ -759,7 +793,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmez le mot de passe"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Entrez le mot de passe"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Paramètres d\'interdiction d\'appel"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Désactiver tous les paramètres d\'interdiction d\'appel?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Le réseau est saturé. Veuillez rappeler plus tard."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Le réseau est saturé. Communiquez avec votre fournisseur de services mobiles pour obtenir de l\'assistance."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Appel redirigé."</string>
@@ -789,4 +822,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Avant d\'utiliser <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assurez-vous que les données cellulaires sont activées pour la carte SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Vous pouvez modifier cette option dans les paramètres du réseau cellulaire."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Avant d\'utiliser <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assurez-vous que les données cellulaires et l\'itinérance des données sont activées pour la carte SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Vous pouvez modifier ces options dans les paramètres du réseau cellulaire."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ignorer"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Activer la connexion de données"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Désactiver la connexion de données"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE approvisionné"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Appel vidéo approvisionné"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Appel Wi-Fi approvisionné"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Présence approvisionné"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Données CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Activer DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Redémarrer l\'appareil?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Vous devez redémarrer votre appareil pour modifier ce paramètre."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Redémarrer"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annuler"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Alimentation de radio cellulaire"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afficher le carnet d\'adresses de la carte SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afficher les numéros d\'appel fixes"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Afficher les numéros de service"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"État du service IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"État IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Enregistré"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Non enregistré"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponible"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Indisponible"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Enregistrement IMS : <xliff:g id="STATUS">%1$s</xliff:g>\nVoix sur LTE : <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoix sur Wi-Fi : <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nAppels vidéo : <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterface UT : <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"En service"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Hors service"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Appels d\'urgence seulement"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Signal radio désactivé"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Itinérance"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Pas en itinérance"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactif"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Sonnerie en cours…"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Appel en cours"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Déconnecté"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Connexion en cours…"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Connecté"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendu"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Inconnu"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"paquets"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"octets"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID ou IDC"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Sous-identifiant actuel :"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Sous-identifiant de la carte SIM par défaut :"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Bande passante de téléchargement (kb/s) :"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Bande passante de téléversement (kb/s) :"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Données de la position de la cellule (discontinuées) :"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuration du canal physique LTE :"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Taux d\'actualisation des données de la cellule :"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Données des mesures de toutes les cellules :"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Service de données :"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Itinérance :"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"Code IIEM :"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Transfert d\'appel :"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Nombre de réinitialisations PPP depuis le démarrage :"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Réseau actuel :"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Données reçues :"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Service vocal :"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Force du signal :"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"État de l\'appel vocal :"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Données envoyées :"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Message en attente :"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Numéro de téléphone :"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Sélectionner la bande radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Type de réseau vocal :"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Type de réseau de données :"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Sélectionner l\'indice du téléphone"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Définir le type de réseau préféré :"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Faire un ping de l\'IPv4 du nom d\'hôte (www.google.com) :"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Faire un ping de l\'IPv6 du nom d\'hôte (www.google.com) :"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test du client HTTP :"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Effectuer le test de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC :"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Mettre à jour"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualiser"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Basculer la vérification DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informations/paramètres OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Définir le mode de bande radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Chargement de la liste de bandes en cours…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Définir"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Échec"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Opération effectuée"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informations sur la tablette"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informations sur le téléphone"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Données d\'approvisionnement du fournisseur de services"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Déclencher l\'approvisionnement du fournisseur de services"</string>
 </resources>
diff --git a/res/values-fr/config.xml b/res/values-fr/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-fr/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 5ea4b7d..e3baed7 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Numéro privé"</string>
     <string name="payphone" msgid="7936735771836716941">"Cabine téléphonique"</string>
     <string name="onHold" msgid="6132725550015899006">"En attente"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Message <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Message de l\'opérateur"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Le code IHM a été lancé."</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Exécution du code USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Code IHM annulé"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR uniquement"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Mode réseau préféré : WCDMA de préférence"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Mode réseau préféré : GSM uniquement"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Mode réseau préféré : LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Mode réseau préféré : GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Mode réseau préféré : CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Mode de réseau préféré : LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Mode réseau préféré : général"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Mode réseau préféré : LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Mode réseau préféré : LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Mode réseau préféré : LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Mode réseau préféré: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Mode réseau préféré : LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Mode de réseau préféré : NR uniquement"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Mode de réseau préféré : NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Mode de réseau préféré : NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Mode de réseau préféré : NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Mode de réseau préféré : NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Mode de réseau préféré : NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Mode de réseau préféré : NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Mode de réseau préféré : NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Mode de réseau préféré : NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Mode de réseau préféré : NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Mode de réseau préféré : NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Appels"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Réseau"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Mode LTE 4G avancé"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-catégories"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Option \"Multi-catégories\" activée"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Option \"Multi-catégories\" désactivée"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (option recommandée)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recommandé)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recommandé)"</string>
     <string name="network_global" msgid="3289646154407617631">"International"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Suppression du numéro autorisé…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Numéro autorisé supprimé"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"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="155512764412225645">"Le numéro autorisé n\'a pas été mis à jour, car il comporte plus de 20 chiffres."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Le numéro autorisé n\'a pas été mis à jour, car il comporte plus de <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> chiffres."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"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="fdn_failed" msgid="216592346853420250">"Échec de l\'opération liée aux numéros autorisés."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lecture de la carte SIM…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Impossible d\'émettre l\'appel. <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="2785803395047793634">"Impossible d\'émettre l\'appel. Veuillez composer un numéro d\'urgence."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Appels d\'urgence non disponibles"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Seul le propriétaire de l\'appareil peut saisir le code PIN ou la clé PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Police"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Pompiers"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Appel texte en temps réel"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Autoriser l\'échange de messages pendant les appels vocaux"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"La fonctionnalité de texte en temps réel vient en aide aux personnes sourdes, malentendantes, qui ont un trouble de la parole, ou qui ont besoin d\'une transcription en plus de la voix.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;En savoir plus&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Les appels texte en temps réel sont enregistrés sous forme transcrite\n       &lt;br&gt; - Le mode texte en temps réel n\'est pas disponible pour les appels vidéo"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Remarque : La fonctionnalité de texte en temps réel n\'est pas disponible en itinérance"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Mode TTY désactivé"</item>
     <item msgid="1449091874731375214">"TTY complet"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Oui"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Non"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ignorer"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Le téléphone est en mode de rappel d\'urgence"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Jusqu\'à <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Le téléphone sera en mode de rappel d\'urgence pendant <xliff:g id="COUNT_1">%s</xliff:g> minutes.\nSouhaitez-vous quitter ce mode maintenant ?</item>
+      <item quantity="other">Le téléphone sera en mode de rappel d\'urgence pendant <xliff:g id="COUNT_1">%s</xliff:g> minutes.\nSouhaitez-vous quitter ce mode maintenant ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Service"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuration"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Non défini&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Interdiction d\'appel désactivée"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Modifier le mot de passe"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Modifier le mot de passe de l\'interdiction d\'appel"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Impossible de modifier le mot de passe de l\'interdiction d\'appel."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Impossible de modifier le mot de passe de l\'interdiction d\'appel"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Les mots de passe ne concordent pas"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Saisissez un mot de passe à quatre chiffres"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Mot de passe modifié"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmer le mot de passe"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Saisissez un mot de passe"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Paramètres d\'interdiction d\'appel"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Désactiver tous les paramètres d\'interdiction d\'appel ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Le réseau est occupé. Veuillez réessayer plus tard."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Le réseau est saturé. Contactez votre opérateur mobile pour obtenir de l\'aide."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Appel redirigé."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Pour utiliser <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assurez-vous que les données mobiles sont activées pour la carte SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Vous pouvez modifier cette option dans les paramètres de réseau mobile."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Pour utiliser <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assurez-vous que les données mobiles et l\'itinérance des données sont activées pour la carte SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Vous pouvez modifier cette option dans les paramètres de réseau mobile."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ignorer"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Activer la connexion de données"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Désactiver la connexion de données"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Configuré par VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Appel vidéo géré"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Appel Wi-Fi géré"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Provisionnement EAB/Presence effectué"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Données CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Activer DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Redémarrer l\'appareil ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Vous devez redémarrer l\'appareil pour modifier ce paramètre."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Redémarrer"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annuler"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Alimentation radio mobile"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afficher le carnet d\'adresses de la carte SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afficher les numéros autorisés"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Afficher les numéros de service"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"État du service IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"État IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Enregistré"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Non enregistré"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponible"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Non disponible"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Enregistrement IMS : <xliff:g id="STATUS">%1$s</xliff:g>\nVoLTE : <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoWiFi : <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nAppels vidéo : <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterface UT : <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"En service"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Hors service"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Appels d\'urgence uniquement"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Signal radio désactivé"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Itinérance"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Sans itinérance"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactif"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Sonnerie"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Appel en cours"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Déconnecté"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Connexion en cours"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Connecté"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendu"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Inconnu"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"paquets"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"octets"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Sous-identifiant actuel :"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Sous-identifiant de la carte SIM par défaut pour les données :"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Bande passante de téléchargement (kbit/s) :"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Bande passante d\'importation (kbit/s) :"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informations de géolocalisation mobiles (obsolètes) :"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuration de la chaîne physique LTE :"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Fréquence d\'actualisation des informations mobiles :"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Toutes les informations mobiles liées aux mesures :"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Service de données :"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Itinérance :"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"Code IMEI :"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redirection des appels :"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Nombre de réinitialisations PPP depuis le démarrage :"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Réseau actuel :"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Données reçues :"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Service vocal :"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Intensité du signal :"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"État de l\'appel vocal :"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Données envoyées :"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Message en attente :"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Numéro de téléphone :"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Sélectionner une bande radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Type de réseau vocal :"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Type de réseau de données :"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Sélectionner l\'identifiant du téléphone"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Définir le type de réseau préféré :"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Pinguer l\'IPv4 du nom d\'hôte (www.google.com) :"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Pinguer l\'IPv6 du nom d\'hôte (www.google.com) :"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test du client HTTP :"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Effectuer un test de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC :"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Mise à jour"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualiser"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Activer/Désactiver le contrôle DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Infos/paramètres OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Définir le mode de bande radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Chargement de la liste de bandes…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Définir"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Échec"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"OK"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informations sur la tablette"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informations sur le téléphone"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informations de gestion des comptes opérateur"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Déclencher la gestion des comptes opérateur"</string>
 </resources>
diff --git a/res/values-gl/config.xml b/res/values-gl/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-gl/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index c0d793d..36938bd 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Número privado"</string>
     <string name="payphone" msgid="7936735771836716941">"Teléfono público"</string>
     <string name="onHold" msgid="6132725550015899006">"En espera"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mensaxe de <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mensaxe do operador"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Código MMI iniciado"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Código USSD en execución..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Código MMI cancelado"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TD-SCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TD-SCDMA/CDMA/EvDo/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TD-SCDMA/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Só NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modo de rede preferido: WCDMA preferido"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modo de rede preferido: só GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Modo de rede preferido: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Modo de rede preferido: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Modo de rede preferido: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Modo de rede preferido: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Modo de rede preferido: global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Modo de rede preferido: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modo de rede preferida: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Modo de rede preferido: LTE/TD-SCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Modo de rede preferido: TD-SCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Modo de rede preferido: LTE/TD-SCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Modo de rede preferido: só NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Modo de rede preferido: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Modo de rede preferido: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Modo de rede preferido: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Modo de rede preferido: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Modo de rede preferido: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Modo de rede preferido: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Modo de rede preferido: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Modo de rede preferido: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Modo de rede preferido: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Modo de rede preferido: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Chamando"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Rede"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modo LTE 4G mellorado"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Múltiples categorías"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multicategoría activada"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multicategoría desactivada"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (modo recomendado)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recomendado)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recomendado)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Eliminando número de marcación fixa..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Eliminouse o número de marcación fixa."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Non se actualizaron os NMF porque escribiches un PIN incorrecto."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Non se puido actualizar o NMP porque o número supera os 20 díxitos."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Non se puido actualizar o NMF porque o número supera os <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> díxitos."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Non se actualizaron os NMF. O PIN2 era incorrecto ou rexeitouse o número de teléfono."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Produciuse un fallo no funcionamento dos NMF."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lendo da tarxeta SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Non se pode chamar. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> non é un número de emerxencia."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Non se pode chamar. Marcar un número de emerxencia."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"As chamadas de emerxencia non están dispoñibles"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Só o propietario do dispositivo pode introducir os códigos PIN ou PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policía"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulancia"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Bombeiros"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Chamada RTT (texto en tempo real)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Permitir uso de mensaxes durante unha chamada de voz"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"A función RTT constitúe unha axuda para todos aqueles emisores de chamadas que padezan xordeira ou outros problemas auditivos, teñan algún trastorno da fala ou necesiten algo máis que a voz para comunicarse.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Máis información&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - As chamadas RTT gárdanse como transcricións de mensaxes\n       &lt;br&gt; - Non se pode utilizar a función RTT nas videochamadas"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Nota: A función RTT non está dispoñible en itinerancia"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY desactivado"</item>
     <item msgid="1449091874731375214">"TTY completo"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Si"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Non"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Rexeitar"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"O teléfono está no modo de devolución de chamadas de emerxencia"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Ata: <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">O teléfono estará no modo de devolución de chamadas de emerxencia durante <xliff:g id="COUNT_1">%s</xliff:g> minutos.\nQueres saír agora?</item>
+      <item quantity="one">O teléfono estará no modo de devolución de chamadas de emerxencia durante <xliff:g id="COUNT_0">%s</xliff:g> minuto.\nQueres saír agora?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Servizo"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuración"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Sen configurar&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Desactivouse a restrición de chamadas"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Cambiar contrasinal"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Cambiar contrasinal de restrición de chamadas"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Non se puido cambiar o contrasinal de restrición de chamadas."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Non se puido cambiar o contrasinal de restrición de chamadas."</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Os contrasinais non coinciden"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Introducir un contrasinal con 4 números"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Cambiouse o contrasinal"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmar contrasinal"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Insire un contrasinal"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Configuración de restrición de chamadas"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Queres desactivar a configuración de restrición de chamadas?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"A rede está ocupada. Proba a chamar de novo máis tarde."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"A rede está conxestionada. Ponte en contacto co teu operador móbil para obter asistencia."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Derivouse a chamada."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Para usar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, asegúrate de que os datos móbiles da SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> están activados. Podes cambiar esta opción na configuración de rede de telefonía móbil."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Para usar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, asegúrate de que os datos móbiles e a itinerancia de datos da SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> están activados. Podes cambiar esta opción na configuración de rede de telefonía móbil."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ignorar"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Activar conexión de datos"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Desactivar conexión de datos"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Fornecemento VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videochamadas activadas"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Chamadas por wifi activadas"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB ou presenza fornecidos"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Datos de CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Activar DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Queres reiniciar o dispositivo?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Debes reiniciar o dispositivo para cambiar esta opción"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Alimentación da radio móbil"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver axenda de enderezos da SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fixa"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servizo"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Estado do servizo de IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Estado de IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Rexistrado"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Non rexistrado"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Dispoñible"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Non dispoñible"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Rexistro de IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoz por LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoz por wifi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideochamada: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterface de UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"En servizo"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Fóra de servizo"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Só chamadas de emerxencia"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Desactivar a radio"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Itinerancia"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Non está en itinerancia"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactivo"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Chamando"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Chamada en curso"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Desconectado"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Conectando"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Conectada"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendido"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Descoñecido"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Código de identificación secundario actual:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Código de identificación secundario da SIM de datos predeterminada:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Largura de banda de descarga (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Largura de banda de carga (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Información da localización para móbiles (obsoleto):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuración de canle física de LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Taxa de actualización da información para móbiles:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Toda a información de medición para móbiles:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Servizo de datos:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Itinerancia:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redirección da chamada:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Número de restablecementos PPP desde o inicio:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Rede actual:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Datos recibidos:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Servizo de voz:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Intensidade do sinal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Estado da chamada de voz:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Datos enviados:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mensaxe en espera:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Número de teléfono:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Seleccionar banda de radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipo de rede de voz:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipo de rede de datos:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Seleccionar unha guía telefónica"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Definir o tipo de rede preferido:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Facer ping ao IPv4 do nome do servidor (www.google.com):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Facer ping ao IPv6 do nome do servidor (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Proba de cliente HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Executar proba de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Actualizar"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualizar"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Alternar comprobación de DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Información ou configuración específica de OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Definir modo de banda de radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Cargando lista de bandas…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Definir"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Incorrecto"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Correcto"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Información da tableta"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Información do teléfono"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Información de aprovisionamento do operador"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aprovisionamento do operador do activador"</string>
 </resources>
diff --git a/res/values-gu/config.xml b/res/values-gu/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-gu/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index e468079..2421ac6 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ખાનગી નંબર"</string>
     <string name="payphone" msgid="7936735771836716941">"પેફોન"</string>
     <string name="onHold" msgid="6132725550015899006">"હોલ્ડ પર"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> સંદેશ"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"કૅરિઅરનો સંદેશ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI કોડ પ્રારંભ કર્યો"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD કોડ ચાલે છે…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI કોડ રદ કર્યો"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"માત્ર NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"પસંદગીનો નેટવર્ક મોડ: WCDMA પસંદ કરેલ છે"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"પસંદગીનો નેટવર્ક મોડ: ફક્ત GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"પસંદગીનો નેટવર્ક મોડ: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"પસંદગીનો નેટવર્ક મોડ: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"પસંદગીનો નેટવર્ક મોડ: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"પસંદગીનો નેટવર્ક મોડ: વૈશ્વિક"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"પસંદગીનો નેટવર્ક મોડ: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"પસંદગીનો નેટવર્ક મોડ: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"પસંદગીનો નેટવર્ક મોડ: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"પસંદગીનો નેટવર્ક મોડ: માત્ર NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"પસંદગીનો નેટવર્ક મોડ: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/CDME/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"કૉલિંગ"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"નેટવર્ક"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"વિસ્તૃત 4G LTE મોડ"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"બહુ-કૅટેગરી"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"બહુ-કૅટેગરી સક્ષમ કરેલ છે"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"બહુ-કૅટેગરી અક્ષમ કરેલ છે"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (સુઝાવ આપેલ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ભલામણ કરેલ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (ભલામણ કરેલ)"</string>
     <string name="network_global" msgid="3289646154407617631">"વૈશ્વિક"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ફિક્સ્ડ ડાયલિંગ નંબર કાઢી રહ્યાં છે..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ફિક્સ્ડ ડાયલિંગ નંબર કાઢી નાખ્યો."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN અપડેટ થયો ન હતો કારણ કે તમે ખોટો PIN લખ્યો છે."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDNને 20 અંકને ઓળંગતો હોવાથી અપડેટ કરી શકાયો નથી."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDNમાં <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> કરતા વધુ અંક હોવાથી તેને અપડેટ કરી શકાયો ન હતો."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN અપડેટ થયો ન હતો. PIN2 ખોટો હતો અથવા ફોન નંબર નકારેલ હતો."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN ઓપરેશન નિષ્ફળ થયું."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM કાર્ડમાંથી વાંચી રહ્યાં છે…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"કૉલ કરી શકાતો નથી. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> એ કટોકટીનો નંબર નથી."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"કૉલ કરી શકાતો નથી. કટોકટીનો નંબર ડાયલ કરો!"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"કટોકટીમાં કૉલ કરવાની સુવિધા ઉપલબ્ધ નથી"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"માત્ર ડિવાઇસના માલિક જ પિન/PUK કોડ દાખલ કરી શકે છે."</string>
     <string name="police_type_description" msgid="2819533883972081757">"પોલીસ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"એમ્બ્યુલન્સ"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"આગ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"રિઅલ-ટાઇમ ટેક્સ્ટ(RTT) કૉલ"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"વૉઇસ કૉલ અંતર્ગત સંદેશ મોકલવાની મંજૂરી આપો"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT બહેરા, સાંભળવા અને બોલવામાં મુશ્કેલી પડતી હોય અથવા વૉઇસ કરતાં પણ વધુ કંઈકની જરૂર હોય એવા કૉલરની સહાય કરે છે.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;વધુ જાણો&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT કૉલને સંદેશ ટ્રાન્સક્રિપ્ટ તરીકે સાચવવામાં આવે છે\n       &lt;br&gt; - RTT વીડિઓ કૉલ માટે ઉપલબ્ધ નથી"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"નોંધ: રોમિંગ વખતે RTT ઉપલબ્ધ નથી"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY બંધ"</item>
     <item msgid="1449091874731375214">"TTY સંપૂર્ણ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"હા"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"નહીં"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"છોડી દો"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ફોન ઇમર્જન્સી કૉલબૅક મોડમાં છે"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> સુધી"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">ફોન <xliff:g id="COUNT_1">%s</xliff:g> મિનિટ માટે ઇમર્જન્સી કૉલબૅક મોડમાં રહેશે.\nશું તમે હમણાં બહાર નીકળવા માગો છો?</item>
+      <item quantity="other">ફોન <xliff:g id="COUNT_1">%s</xliff:g> મિનિટ માટે ઇમર્જન્સી કૉલબૅક મોડમાં રહેશે.\nશું તમે હમણાં બહાર નીકળવા માગો છો?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"સેવા"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"સેટઅપ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;સેટ કરેલ નથી&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"કૉલ બારિંગ નિષ્ક્રિય કરવામાં સફળ રહ્યાં"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"પાસવર્ડ બદલો"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"કૉલ બારિંગનો પાસવર્ડ બદલો"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"કૉલ બારિંગનો પાસવર્ડ બદલી શકાતો નથી."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"કૉલ અવરોધવાનો પાસવર્ડ બદલી શકાતો નથી"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"પાસવર્ડ મેળ ખાતા નથી"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 અંકોનો પાસવર્ડ દાખલ કરો"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"પાસવર્ડ બદલવામાં સફળ રહ્યાં"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"પાસવર્ડની પુષ્ટિ કરો"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"પાસવર્ડ દાખલ કરો"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"કૉલ બારિંગની સેટિંગ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"કૉલ બારિંગની બધી સેટિંગ નિષ્ક્રિય કરીએ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"નેટવર્ક વ્યસ્ત છે. કૃપા કરીને કૉલ કરવાનો પછીથી ફરી પ્રયાસ કરો."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"નેટવર્ક ખૂબ ભરાયેલું છે. સહાય માટે મોબાઇલ ઑપરેટરનો સંપર્ક કરો."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"કૉલ બીજે વાળ્યો."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>નો ઉપયોગ કરવા માટે, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> માટે મોબાઇલ ડેટા ચાલુ હોવાની ખાતરી કરો. તમે આને મોબાઇલ નેટવર્ક સેટિંગમાં બદલી શકો છો."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>નો ઉપયોગ કરવા માટે, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> માટે મોબાઇલ ડેટા અને ડેટા રોમિંગ ચાલુ હોવાની ખાતરી કરો. તમે આને મોબાઇલ નેટવર્ક સેટિંગમાં બદલી શકો છો."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"છોડી દો"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ડેટા કનેક્શન ચાલુ કરો"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ડેટા કનેક્શન બંધ કરો"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTEની જોગવાઈ કરી"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"વીડિયો કૉલિંગની જોગવાઈ કરી"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"વાઇ-ફાઇ કૉલિંગની જોગવાઈ કરી"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/ઉપસ્થિતિની જોગવાઈ કરી"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ડેટા"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS ચાલુ કરો"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ડિવાઇસ ફરી શરૂ કરીએ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"આ સેટિંગમાં ફેરફાર કરવા માટે તમારા ડિવાઇસને ફરી શરૂ કરો."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ફરી શરૂ કરો"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"રદ કરો"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"મોબાઇલ રેડિયો પાવર"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"સિમમાં સરનામા પુસ્તિકા જુઓ"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ફિક્સ્ડ ડાયલિંગ નંબર જુઓ"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"સર્વિસ ડાયલિંગ નંબર જુઓ"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS સેવા સ્ટેટસ"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS સ્ટેટસ"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"રજિસ્ટર કરેલો"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"રજિસ્ટર કરેલો નથી"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ઉપલબ્ધ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ઉપલબ્ધ નથી"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS નોંધણી: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE પર વૉઇસ: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nવાઇ-ફાઇ પર વૉઇસ: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nવીડિયો કૉલિંગ: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ઇન્ટરફેસ: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"સેવામાં"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"કાર્યરત્ નથી"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"ફક્ત ઇમર્જન્સી કૉલ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"રેડિયો બંધ કરો"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"રોમિંગ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"રોમિંગ નહીં"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"નિષ્ક્રિય"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"રિંગ વગાડીએ છીએ"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"કૉલ ચાલુ છે"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ડિસ્કનેક્ટ કર્યું"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"કનેક્ટ કરી રહ્યાં છીએ"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"કનેક્ટેડ"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"સસ્પેન્ડ કરી"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"અજાણ"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"બાઇટ"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"હાલનું subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ડિફૉલ્ટ ડેટા સિમનું SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL બૅન્ડવિડ્થ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL બૅન્ડવિડ્થ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"સેલ સ્થાન માહિતી (ટાળેલ):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ભૌતિક ચૅનલની ગોઠવણી:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"સેલ માહિતી રિફ્રેશ થવાનો રેટ:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"તમામ સેલ માપ માહિતી:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ડેટા સેવા:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"રોમિંગ:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"કૉલ રીડાયરેક્ટ:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"બૂટ કર્યા સુધીમાં PPP ફરીથી સેટ કરોની સંખ્યા:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"વર્તમાન નેટવર્ક:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ડેટા પ્રાપ્ત થયો:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"વૉઇસ સેવા:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"સિગ્નલની પ્રબળતા:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"વૉઇસ કૉલનું સ્ટેટસ:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ડેટા મોકલ્યો:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"સંદેશ ઉપલબ્ધ છે:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ફોન નંબર:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"રેડિયો બૅન્ડ પસંદ કરો"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"વૉઇસ નેટવર્ક પ્રકાર:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ડેટા નેટવર્કનો પ્રકાર:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ફોનની અનુક્રમણિકા પસંદ કરો"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"પસંદગીનો નેટવર્ક પ્રકાર સેટ કરો:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"હોસ્ટનું નામ પિંગ કરો(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"હોસ્ટનું નામ પિંગ કરો(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP ક્લાઇન્ટ પરીક્ષણ:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"પિંગ પરીક્ષણ શરૂ કરો"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"અપડેટ કરો"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"રિફ્રેશ કરો"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS તપાસ ટૉગલ કરો"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-વિશિષ્ટ માહિતી/સેટિંગ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"રેડિયો બૅન્ડ મોડ સેટ કરો"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"બૅન્ડની સૂચિ લોડ કરી રહ્યું છે…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"સેટ કરો"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"અસફળ"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"સફળ થયાં"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ટૅબ્લેટ વિશે માહિતી"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ફોનની માહિતી"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"કૅરિઅરની જોગવાઈ વિશે માહિતી"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"કૅરિઅરની જોગવાઈ ટ્રિગર કરો"</string>
 </resources>
diff --git a/res/values-h500dp/dimens.xml b/res/values-h500dp/dimens.xml
index 2c7c797..d74f0a1 100644
--- a/res/values-h500dp/dimens.xml
+++ b/res/values-h500dp/dimens.xml
@@ -16,5 +16,5 @@
   -->
 
 <resources>
-    <dimen name="dialpad_bottom_padding">36dp</dimen>
+    <dimen name="dialpad_bottom_padding">16dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/res/values-hi/config.xml b/res/values-hi/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-hi/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index dfac730..9724699 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"निजी नंबर"</string>
     <string name="payphone" msgid="7936735771836716941">"पे-फ़ोन"</string>
     <string name="onHold" msgid="6132725550015899006">"होल्ड पर"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> मैसेज"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी का मैसेज"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI कोड प्रारंभ किया गया"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD कोड चल रहा है…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI कोड रद्द किया गया"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"सिर्फ़ NR मोड"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"पसंदीदा नेटवर्क मोड: WCDMA को प्राथमिकता"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"पसंदीदा नेटवर्क मोड: केवल GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"पसंदीदा नेटवर्क मोड: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"पसंदीदा नेटवर्क मोड: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"पसंदीदा नेटवर्क मोड: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"पसंदीदा नेटवर्क मोड: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"पसंदीदा नेटवर्क मोड: वैश्विक"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"पसंदीदा नेटवर्क मोड: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"पसंदीदा नेटवर्क मोड: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"पसंदीदा नेटवर्क मोड: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"पसंदीदा नेटवर्क मोड: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"पसंदीदा नेटवर्क मोड: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"पसंदीदा नेटवर्क मोड: सिर्फ़ NR मोड"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"पसंदीदा नेटवर्क मोड: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"पसंदीदा नेटवर्क मोड: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"पसंदीदा नेटवर्क मोड: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"पसंदीदा नेटवर्क मोड: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"पसंदीदा नेटवर्क मोड: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"पसंदीदा नेटवर्क मोड: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"पसंदीदा नेटवर्क मोड: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"पसंदीदा नेटवर्क मोड: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"पसंदीदा नेटवर्क मोड: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"पसंदीदा नेटवर्क मोड: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"कॉलिंग"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"नेटवर्क"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"बेहतर 4G LTE मोड"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"बहु-श्रेणी"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"बहु-श्रेणी सक्षम की गई"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"बहु-श्रेणी अक्षम की गई"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (सुझाए गए)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (सुझाये गये)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (सुझाये गये)"</string>
     <string name="network_global" msgid="3289646154407617631">"वैश्विक"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"फ़िक्स्ड डायलिंग नंबर हटा रहा है..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"फ़िक्स्ड डायलिंग नंबर हटाया गया."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN पे नई जानकारी नहीं है क्योंकि आपने गलत पिन लिखा है."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN अपडेट नहीं किया जा सका, क्योंकि नंबर में 20 से ज़्यादा अंक हैं."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN अपडेट नहीं किया जा सका, क्योंकि नंबर में <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> से ज़्यादा अंक हैं."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN पे नई जानकारी नहीं है. PIN2 गलत था, या फ़ोन नंबर नामंजूर था."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN की कार्यवाही विफल रही."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"सिम कार्ड से पढ़ रहा है…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"कॉल नहीं किया जा सकता. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> एक आपातकालीन नंबर नहीं है."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"कॉल नहीं किया जा सकता. आपातकालीन नबर डायल करें."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"आपातकालीन कॉल करने की सुविधा उपलब्ध नहीं है"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"सिर्फ़ डिवाइस का मालिक ही PIN/PUK कोड दर्ज कर सकता है."</string>
     <string name="police_type_description" msgid="2819533883972081757">"पुलिस"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"एम्बुलेंस"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"आग"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"(आरटीटी) कॉल से रीयल-टाइम में मैसेज भेजें"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"वॉइस कॉल में मैसेज भेजने की अनुमति दें"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"आरटीटी उन कॉल करने वालों की मदद करता है, जो सुन नहीं सकते हैं, ऊंचा सुनते हैं, जिन्हें बोलने में दिक्कत है या जिनके लिए सिर्फ़ आवाज़ काफ़ी नहीं होती.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ज़्यादा  जानें&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - आरटीटी कॉल, मैसेज लेख के रूप में सेव किए जाते हैं\n       &lt;br&gt; - वीडियो कॉल के लिए आरटीटी उपलब्ध नहीं है"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ध्यान दें: आरटीटी (रीयल-टाइम में मैसेज भेजना) की सुविधा रोमिंग के दौरान नहीं दी जाती"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY बंद"</item>
     <item msgid="1449091874731375214">"TTY पूरा हुआ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"हां"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"नहीं"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"खारिज करें"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"फ़ोन आपातकालीन कॉलबैक मोड में है"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> तक"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">फ़ोन <xliff:g id="COUNT_1">%s</xliff:g> मिनट के लिए आपातकालीन कॉलबैक मोड में रहेगा.\nक्या आप अभी बाहर निकलना चाहते हैं?</item>
+      <item quantity="other">फ़ोन <xliff:g id="COUNT_1">%s</xliff:g> मिनट के लिए आपातकालीन कॉलबैक मोड में रहेगा.\nक्या आप अभी बाहर निकलना चाहते हैं?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"सेवा"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"सेटअप"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;सेट नहीं है&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"कॉल रोकें सुविधा निष्क्रिय की गई"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"पासवर्ड बदलें"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"कॉल रोकें सुविधा का पासवर्ड बदलें"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"कॉल रोकें सुविधा का पासवर्ड बदला नहीं जा सकता."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"कॉल रोकने की सुविधा का पासवर्ड बदला नहीं जा सकता"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"पासवर्ड मेल नहीं खाते"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 संख्याओं वाला एक पासवर्ड डालें"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"पासवर्ड बदल दिया गया"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"पासवर्ड की पुष्टि करें"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"पासवर्ड डालें"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"कॉल रोकें सुविधा की सेटिंग"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"कॉल रोकें सुविधा की सभी सेटिंग निष्क्रिय करें?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"नेटवर्क व्यस्त है. कृपया बाद में दोबारा कॉल करें."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"नेटवर्क व्यस्त है. मदद के लिए अपने मोबाइल ऑपरेटर से संपर्क करें."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"कॉल दूसरे नंबर पर भेजे जाने के बजाय खुद को आ गया."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> का उपयोग करने के लिए पक्का करें कि सिम <xliff:g id="SIM_NUMBER">%2$d</xliff:g> का डेटा चालू है. आप मोबाइल नेटवर्क सेटिंग में जाकर इसे बदल सकते हैं."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> का उपयोग करने के लिए पक्का करें कि सिम <xliff:g id="SIM_NUMBER">%2$d</xliff:g> का मोबाइल डेटा और डेटा रोमिंग चालू हैं. आप मोबाइल नेटवर्क सेटिंग में जाकर इन्हें बदल सकते हैं."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"खारिज करें"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"डेटा कनेक्शन चालू करें"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"डेटा कनेक्शन बंद करें"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE काम कर रहा है"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"वीडियो कॉलिंग की सुविधा काम कर रही है"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"वाई-फ़ाई कॉलिंग की सुविधा काम कर रही है"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"ईएएबी/मौजूदगी सुविधा काम कर रही है"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"सीबीआरएस डेटा"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"डीएसडीएस चालू करें"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"डिवाइस रीस्टार्ट करना चाहते हैं?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"इस सेटिंग को बदलने के लिए आपको अपना डिवाइस रीस्टार्ट करना होगा."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"रीस्टार्ट करें"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"रद्द करें"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"मोबाइल रेडियो पावर"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"सिम में संपर्कों के पते की सूची देखें"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"फ़िक्स्ड डायलिंग नंबर देखें"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"सेवा के डायलिंग नंबर देखें"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"आईएमएस की सेवा की स्थिति"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"आईएमएस की स्थिति"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"रजिस्टर किया गया"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"रजिस्टर नहीं किया हुआ है"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"उपलब्ध है"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"उपलब्ध नहीं है"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"आईएमएस रजिस्ट्रेशन: <xliff:g id="STATUS">%1$s</xliff:g>\nवॉइस ओवर एलटीई: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nवॉइस ओवर वाई-फ़ाई: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nवीडियो कॉलिंग: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nयूटी इंटरफ़ेस: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"सेवा में है"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"सेवा में नहीं"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"सिर्फ़ आपातकालीन कॉल"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"रेडियो बंद"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"रोमिंग"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"रोमिंग में नहीं है"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"इस्तेमाल नहीं किया जा रहा है"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"घंटी बज रही है"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"कॉल चल रहा है"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"डिसकनेक्ट किया गया"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"कनेक्ट हो रहा है"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"कनेक्ट किया गया"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"थोड़ी देर के लिए रोक लगी है"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"अज्ञात"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"बाइट"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"एलएसी"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"सीआईडी"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"मौजूदा सब-आईडी:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"डिफ़ॉल्ट डेटा सिम का सब-आईडी:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"डीएल बैंडविड्थ (केबीपीएस):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"यूएल बैंडविड्थ (केबीपीएस):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"सेल की जगह की जानकारी (रोकी गयी है):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"एलटीई की फ़िज़िकल चैनल कॉन्फ़िगरेशन:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"सेल की जानकारी रीफ़्रेश होने की दर:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"सभी सेल के माप की पूरी जानकारी:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"डेटा सेवा:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"रोमिंग:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"कॉल को दूसरे नंबर पर भेजें:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"चालू करने के बाद से पीपीपी रीसेट की संख्या:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"मौजूदा नेटवर्क:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"मिलने वाला डेटा :"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Voice की सेवा:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"सिग्नल कितना अच्छा है:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Voice कॉल की स्थिति:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"भेजा गया डेटा :"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"मैसेज वेटिंग:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"फ़ोन नंबर:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"रेडियो का बैंड चुनें"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Voice के नेटवर्क प्रकार:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"डेटा नेटवर्क प्रकार:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"फ़ोन इंडेक्स चुनें"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"पसंदीदा नेटवर्क प्रकार सेट करें:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"होस्टनाम(www.google.com) IPv4 पिंग करें:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"होस्टनाम(www.google.com) IPv6 पिंग करें:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"एचटीटीपी क्लाइंट जांच:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"पिंग जांच चलाएं"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"एसएमएससी:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"अपडेट करें"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"रीफ़्रेश करें"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"डीएनएस जांच टॉगल करें"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"ओईएम-खास जानकारी/सेटिंग"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"\'रेडियो बैंड\' मोड सेट करें"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"बैंड सूची लोड की जा रही है…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"सेट करें"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"\'बैंड मोड\' चालू नहीं हो सका"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"\'बैंड मोड\' चालू हो गया"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"टैबलेट की जानकारी"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"फ़ोन की जानकारी"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी के प्रावधान की जानकारी"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी के प्रावधान चालू करें"</string>
 </resources>
diff --git a/res/values-hr/config.xml b/res/values-hr/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-hr/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 5e74378..07e4e80 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privatni broj"</string>
     <string name="payphone" msgid="7936735771836716941">"Javna telefonska govornica"</string>
     <string name="onHold" msgid="6132725550015899006">"Na čekanju"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> – poruka"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Poruka operatera"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Pokrenut je MMI kôd"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Pokrenut je USSD kôd…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Otkazan je MMI kôd"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Samo NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Način željene mreže: Preferirano WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Način željene mreže: Samo GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferirani mrežni način: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferirani mrežni način: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferirani mrežni način: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preporučeni mrežni način: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferirani mrežni način: globalni"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferirani mrežni način: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferirani način mreže: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preporučeni mrežni način: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preporučeni mrežni način: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preporučeni mrežni način: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preporučeni mrežni način: samo NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preporučeni mrežni način: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preporučeni mrežni način: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preporučeni mrežni način: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preporučeni mrežni način: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preporučeni mrežni način: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preporučeni mrežni način: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preporučeni mrežni način: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preporučeni mrežni način: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preporučeni mrežni način: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preporučeni mrežni način: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Pozivanje"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Mreža"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Poboljšan 4G LTE način"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Višestruka kategorija"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Omogućena je višestruka kategorija"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Onemogućena je višestruka kategorija"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (preporučeno)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (preporučeno)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (preporučeno)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globalno"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Brisanje broja za fiksno biranje…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Izbrisan je broj za fiksno biranje."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN nije ažuriran jer ste upisali pogrešan PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN nije ažuriran jer broj premašuje 20 znamenki."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN nije ažuriran jer broj premašuje sljedeći broj znamenki: <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN nije ažuriran. PIN2 nije točan ili je telefonski broj odbijen."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operacija FDN nije uspjela."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Čitanje sa SIM kartice…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Pozivanje nije moguće. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nije broj hitne službe."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Pozivanje nije moguće. Nazovite broj hitne službe."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Hitni pozivi nisu dostupni"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Samo vlasnik uređaja može unijeti kodove PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policija"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Hitna pomoć"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Vatrogasci"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"RTT (tekst u stvarnom vremenu) poziv"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Omogućavanje slanja poruka u glasovnom pozivu"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT pomaže pozivateljima koji su gluhi, imaju oštećenje sluha, govornu manu ili im treba više od samo glasa.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Saznajte više&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT pozivi spremaju se kao prijepis poruke\n       &lt;br&gt; – RTT nije dostupan za videopozive"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Napomena: RTT nije dostupan u roamingu"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Isključen je TTY"</item>
     <item msgid="1449091874731375214">"TTY je pun"</item>
@@ -611,6 +639,13 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ne"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Odbaci"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon je u načinu rada hitnog povratnog poziva"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Telefon će biti u načinu rada hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minutu.\nŽelite li sada izaći?</item>
+      <item quantity="few">Telefon će biti u načinu rada hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minute.\nŽelite li sada izaći?</item>
+      <item quantity="other">Telefon će biti u načinu rada hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minuta.\nŽelite li sada izaći?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Usluga"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Postavljanje"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nije postavljeno&gt;"</string>
@@ -750,7 +785,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Zabrana poziva deaktivirana"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Promjena zaporke"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Promjena zaporke za zabranu poziva"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Zaporka za zabranu poziva ne može se promijeniti."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Zaporka za zabranu poziva ne može se promijeniti"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Zaporke se ne podudaraju"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Unesite zaporku s 4 brojke"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Zaporka promijenjena"</string>
@@ -759,7 +794,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Potvrda zaporke"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Unesite zaporku"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Postavke za zabranu poziva"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Želite li deaktivirati sve postavke za zabranu poziva?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Mreža je zauzeta. Pokušajte ponovno uputiti poziv kasnije."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Mreža je zauzeta. Za pomoć se obratite svom mobilnom operateru."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Poziv odbačen."</string>
@@ -789,4 +823,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Da biste koristili uslugu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, provjerite jesu li mobilni podaci za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni. Tu opciju možete promijeniti u postavkama mobilne mreže."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Da biste koristili uslugu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, provjerite jesu li mobilni podaci i roaming podataka za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni. Tu opciju možete promijeniti u postavkama mobilne mreže."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Odbaci"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Omogući podatkovnu vezu"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Onemogući podatkovnu vezu"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE omogućen"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Pružena usluga videopoziva"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Pružena usluga poziva putem Wi-Fija"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Pruža se usluga EAB-a/prisutnosti"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Podaci CBRS-a"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Omogući DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Ponovo pokrenuti?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Ponovo pokrenite uređaj da biste promijenili tu postavku."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Ponovno pokretanje"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Odustani"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Snaga mobilnog radija"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži imenik SIM-a"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve za fiksno biranje"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve za servisno biranje"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status usluge IMS-a"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Status IMS-a"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrirano"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Niste registrirani"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Dostupno"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nije dostupno"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registracija IMS-a: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideopozivi: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT sučelje: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Upotrebljava se"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ne radi"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Samo hitni pozivi"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio je isključen"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Bez roaminga"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"U mirovanju"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Zvonjenje"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Razgovor u tijeku"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Nije povezano"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Povezivanje"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Povezano"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Obustavljeno"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Nepoznato"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bajtovi"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Trenutačni SUBID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SUBID zadanog SIM-a za podatkovni promet:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL propusnost (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL propusnost (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacije o lokaciji ćelije (obustavljeno):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracija LTE fizičkog kanala:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Stopa osvježavanja informacija u ćeliji:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Sve informacije ćelija o mjerenju:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Podatkovna usluga:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Preusmjeravanje poziva:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Broj PPP poništavanja od pokretanja:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Trenutačna mreža:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Primljeni podaci:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Glasovna usluga:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Jačina signala:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status glasovnog poziva:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Podaci poslani:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Poruka na čekanju:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonski broj:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Odaberite radijsku frekvenciju"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Vrsta glasovne mreže:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Vrsta podatkovne mreže:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Odaberite telefonski indeks"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Postavite željenu vrstu mreže:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Pinganje naziva hosta (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Pinganje naziva hosta (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test HTTP klijenta:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Pokreni ping test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Ažuriraj"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Osvježi"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Uključi/isključi provjeru DNS-a"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informacije/postavke koje se posebno odnose na OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Postavi način radijske frekvencije"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Učitavanje popisa frekvencija…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Postavi"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Neuspješno"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Uspješno"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informacije o tabletnom uređaju"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacije o telefonu"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informacije o uslugama mobilnog operatera"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Pokretanje usluga mobilnog operatera"</string>
 </resources>
diff --git a/res/values-hu/config.xml b/res/values-hu/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-hu/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 47b102f..21939d9 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Magántelefonszám"</string>
     <string name="payphone" msgid="7936735771836716941">"Nyilvános telefon"</string>
     <string name="onHold" msgid="6132725550015899006">"Tartásban"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>-üzenet"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Szolgáltatói üzenet"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-kód elindítva"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-kód futtatása..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-kód megszakítva"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Csak NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferált hálózati mód: preferált WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferált hálózati mód: csak GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferált hálózati mód: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferált hálózati mód: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferált hálózati mód: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Előnyben részesített hálózati mód: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferált hálózati mód: globális"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferált hálózati mód: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Előnyben részesített hálózati mód: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferált hálózati mód: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferált hálózati mód: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferált hálózati mód: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Előnyben részesített hálózati mód: csak NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Előnyben részesített hálózati mód: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Előnyben részesített hálózati mód: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Előnyben részesített hálózati mód: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Előnyben részesített hálózati mód: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Előnyben részesített hálózati mód: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Előnyben részesített hálózati mód: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Előnyben részesített hálózati mód: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Előnyben részesített hálózati mód: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Előnyben részesített hálózati mód: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Előnyben részesített hálózati mód: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Hívás"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Hálózat"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Javított 4G LTE mód"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Több kategória"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Több kategória engedélyezve"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Több kategória letiltva"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ajánlott)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (javasolt)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (javasolt)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globális"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Fix hívószám törlése..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"A fix hívószám törölve."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"A fix hívószám nincs frissítve, mert hibás PIN kódot írt be."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Az FDN nem lett frissítve, mert az érték több mint 20 számjegyből áll."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Az FDN nem frissült, mert az érték több mint <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> számjegyből áll."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"A fix hívószám nem lett frissítve. Hibás a PIN2 kód, vagy a telefonszámot elutasították."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Sikertelen a fix hívószámmal végzett művelet."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Beolvasás a SIM kártyáról..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"A hívás sikertelen. A(z) <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> szám nem segélyhívószám."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"A hívás sikertelen. Tárcsázzon segélyhívószámot."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"A segélyhívási funkció nem áll rendelkezésre"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Csak az eszköz tulajdonosa adhatja meg a PIN-kódot és a PUK-kódot."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Rendőrség"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Mentők"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Tűzoltóság"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Valós idejű szöveg (RTT) típusú hívás"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Üzenetküldés engedélyezése a hangalapú hívásokban"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Az RTT funkció a siket, hallássérült, beszédzavaros vagy a hangalapú kommunikáción kívül más kommunikációt is igénylő hívóknak lehet segítségére.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;További információ.&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Az RTT-hívásokat a rendszer üzenetátiratként menti.\n       &lt;br&gt; - Az RTT funkció nem áll rendelkezésre videohívásokban."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Megjegyzés: az RTT nem áll rendelkezésre roaming közben"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY kikapcsolva"</item>
     <item msgid="1449091874731375214">"Teljes TTY"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Igen"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nem"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Elvetés"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"A telefon sürgősségi visszahívás módban van."</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Eddig: <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">A telefon <xliff:g id="COUNT_1">%s</xliff:g> percig sürgősségi visszahívás módban lesz.\nKilép?</item>
+      <item quantity="one">A telefon <xliff:g id="COUNT_0">%s</xliff:g> percig sürgősségi visszahívás módban lesz.\nKilép?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Szolgáltatás"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Beállítás"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nincs megadva&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Híváskorlátozás deaktiválva"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Jelszó módosítása"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Híváskorlátozási jelszó módosítása"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Nem sikerült módosítani a híváskorlátozási jelszót."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Nem sikerült módosítani a híváskorlátozási jelszót"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"A jelszavak nem egyeznek"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Adjon meg egy 4 számból álló jelszót"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Jelszó módosítva"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Jelszó megerősítése"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Adja meg a jelszót"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Híváskorlátozási beállítások"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deaktiválja az összes híváskorlátozási beállítást?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"A hálózat túlterhelt. Próbálkozzon a hívással később."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"A hálózat túlterhelt. Ha segítségre van szüksége, forduljon a mobilszolgáltatóhoz."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Hívás átirányítva egy másik számra."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"A(z) <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> használatához győződjön meg róla, hogy a mobiladat-kapcsolat be van kapcsolva a SIM-kártyán (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>). Ezt a mobilhálózat beállításainál módosíthatja."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"A(z) <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> használatához győződjön meg róla, hogy a mobiladat-kapcsolat és az adatbarangolás be van kapcsolva a SIM-kártyán (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>). Ezt a mobilhálózat beállításainál módosíthatja."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Elvetés"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Adatkapcsolat engedélyezése"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Adatkapcsolat letiltása"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-jelző"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videohívás beütemezve"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi-hívás beütemezve"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Engedélyezett jelenlét"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-adatok"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS engedélyezése"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Újraindítja az eszközt?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"A beállítás módosításához újra kell indítania az eszközt."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Újraindítás"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Mégse"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobil rádióadó teljesítménye"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM-kártya telefonkönyvének megtekintése"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Fix hívószámok megtekintése"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Szolgáltatásszámok megtekintése"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-szolgáltatás állapota"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-állapot"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Regisztrált"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Nem regisztrált"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Rendelkezésre áll"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nem áll rendelkezésre"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-regisztráció: <xliff:g id="STATUS">%1$s</xliff:g>\nHanghívás LTE-adatkapcsolaton keresztül: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nHanghívás Wi-Fi-kapcsolaton keresztül: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideohívás: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-felület: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Szolgáltatás"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Nem működik"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Csak segélyhívások"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Rádió kikapcsolva"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Nem barangol"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Tétlen"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Csörgés"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Hívás folyamatban"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Leválasztva"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Csatlakozás"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Csatlakoztatva"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Felfüggesztve"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Ismeretlen"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"csomag"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bájt"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Jelenlegi alazonosító:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Alapértelmezett adatok SIM-alazonosítója:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Letöltési sávszélesség (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Feltöltési sávszélesség (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobilos helyadatok (megszűnt):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE fizikai csatorna konfigurációja:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Cellainformáció frissítési gyakorisága:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Minden cellamérési információ:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Adatszolgáltatás:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Barangolás:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Hívásátirányítás:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP-visszaállítások száma a legutolsó rendszerindítás óta:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Jelenlegi hálózat:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Fogadott adatok:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Hangszolgáltatás:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Jelerősség:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Hanghívás állapota:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Elküldött adatok:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Üzenetek várakozása:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonszám:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Rádióhullámsáv kiválasztása"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Hanghálózat típusa:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Adathálózat típusa:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Telefonkönyv kiválasztása"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Preferált hálózattípus beállítása:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Pingelt gazdagépnév (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Pingelt gazdagépnév (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-kliens tesztje:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Pingteszt futtatása"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Frissítés"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Frissítés"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS-ellenőrzés váltása"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specifikus adatok és beállítások:"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Rádióhullámsáv mód beállítása"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Sávlista betöltése…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Beállítás"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Sikertelen"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Sikeres"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Táblagép adatai"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefon adatai"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Információ a szolgáltatói ellátásról"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Szolgáltatói ellátás aktiválása"</string>
 </resources>
diff --git a/res/values-hy/config.xml b/res/values-hy/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-hy/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 16366aa..9ec2ae0 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Գաղտնի համար"</string>
     <string name="payphone" msgid="7936735771836716941">"Բջջային տերմինալ"</string>
     <string name="onHold" msgid="6132725550015899006">"Սպասում"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Հաղորդագրություն (<xliff:g id="MMICARRIER">%s</xliff:g>)"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Հաղորդագրություն օպերատորից"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI կոդը մեկնարկել է"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD կոդը գործարկվում է..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI կոդը չեղարկված է"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Միայն NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Նախընտրելի ցանցի ռեժիմը՝ WCDMA նախընտրելի"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Նախընտրելի ցանցի ռեժիմը՝ միայն GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Նախընտրելի ցանցի ռեժիմը՝ LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Նախընտրելի ցանցի ռեժիմը՝ GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Նախընտրելի ցանցի ռեժիմը՝ CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Ցանցի նախընտրելի ռեժիմը՝ LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Նախընտրելի ցանցի ռեժիմը՝ Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Նախընտրելի ցանցի ռեժիմը՝ LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Ցանցի նախընտրելի ռեժիմը՝ LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Ցանցի նախընտրելի ռեժիմը՝ LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Ցանցի նախընտրելի ռեժիմը՝ TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Ցանցի նախընտրելի ռեժիմը՝ LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Ցանցի նախընտրելի ռեժիմը՝ միայն NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Զանգ"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Ցանց"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Ընդլայնված 4G LTE ռեժիմ"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Բազմակարգ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Բազմակարգը միացված է"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Բազմակարգն անջատված է"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (խորհուրդ է տրվում)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (խորհուրդ է տրվում)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (խորհուրդ է տրվում)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Ջնջվում է ամրակայված հեռախոսահամարը ..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Թույլատրված հեռախոսահամարը ջնջված է:"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN-ը չի թարմացվել, քանի որ դուք մուտքագրել եք սխալ PIN:"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN-ը չթարմացվեց, քանի որ համարը գերազանցում է 20 նիշը:"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN-ը չթարմացվեց, քանի որ համարը գերազանցում է <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> նիշը:"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN-ը չի թարմացվել: PIN2-ը սխալ է կամ հեռախոսահամարը մերժված է:"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN գործողությունը ձախողվեց:"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Ընթերցում է SIM քարտից..."</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Հնարավոր չէ զանգել: <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> համարը արտակարգ իրավիճակի համար չէ:"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Հնարավոր չէ զանգել: Հավաքեք արտակարգ իրավիճակի որևէ համար:"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Շտապ կանչերը հասանելի չեն"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Միայն սարքի սեփականատերը կարող է մուտքագրել PIN/PUK կոդերը:"</string>
     <string name="police_type_description" msgid="2819533883972081757">"Ոստիկանություն"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Շտապ օգնություն"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Հրշեջ ծառայություն"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"RTT զանգ (հաղորդագրություն զանգի միջոցով)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Թույլատրել հաղորդագրությունների ուղարկումն ու ստացումը զանգի միջոցով"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT-ն օգնում է այն բաժանորդներին, ովքեր լսողության և խոսքի դժվարություններ ունեն, կամ ովքեր լոկ ձայնով չեն բավարարվում:&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Իմանալ ավելին&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT զանգերը պահվում են որպես հաղորդագրության տառադրումներ\n       &lt;br&gt; – RTT-ն հասանելի չէ տեսազանգի ժամանակ"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"RTT գործառույթը հասանելի չէ ռոումինգում"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY-ն անջատված է"</item>
     <item msgid="1449091874731375214">"Լիարժեք TTY"</item>
@@ -611,6 +639,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Այո"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ոչ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Անտեսել"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Հեռախոսը շտապ հետզանգի ռեժիմում է"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Մինչև <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Շտապ հետզանգի ռեժիմը կգործի դեռ <xliff:g id="COUNT_1">%s</xliff:g> րոպե։\nԴո՞ւրս գալ։</item>
+      <item quantity="other">Շտապ հետզանգի ռեժիմը կգործի դեռ <xliff:g id="COUNT_1">%s</xliff:g> րոպե։\nԴո՞ւրս գալ։</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Ծառայություն"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Կարգավորում"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Նշված չէ&gt;"</string>
@@ -750,7 +784,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Զանգերի արգելափակման կարգավորումներն անջատվեցին"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Փոխել գաղտնաբառը"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Փոխել զանգերի արգելափակման գաղտնաբառը"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Չհաջողվեց փոխել զանգերի արգելափակման գաղտնաբառը:"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Չհաջողվեց փոխել զանգերի արգելափակման գաղտնաբառը"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Գաղտնաբառերը չեն համընկնում"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Մուտքագրեք 4 թվից բաղկացած գաղտնաբառ"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Գաղտնաբառը փոխվեց"</string>
@@ -759,7 +793,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Հաստատել գաղտնաբառը"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Մուտքագրեք գաղտնաբառը"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Զանգերի արգելափակման կարգավորումներ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Անջատե՞լ զանգերի արգելափակման բոլոր կարգավորումները"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Ցանցը զբաղված է: Ավելի ուշ նորից փորձեք զանգել:"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Ցանցը ծանրաբեռնված է: Օգնության համար դիմեք ձեր բջջային օպերատորին:"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Զանգը վերահասցեավորվեց:"</string>
@@ -789,4 +822,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ծառայությունից օգտվելու համար համոզվեք, որ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> քարտի համար բջջային ինտերնետը միացված է: Սա կարող եք փոխել բջջային ցանցի կարգավորումներում:"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ծառայությունից օգտվելու համար համոզվեք, որ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> քարտի համար բջջային ինտերնետը և ինտերնետը ռոումինգում միացված են: Սրանք կարող եք փոխել բջջային ցանցի կարգավորումներում:"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Փակել"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Միացնել տվյալների կապը"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Անջատել տվյալների կապը"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-ի տրամադրում"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Տեսազանգերի նախապատրաստում"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi զանգերի նախապատրաստում"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/ներկայության տրամադրում"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS տվյալներ"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Միացրեք DSDS-ը"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Վերագործարկե՞լ սարքը"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Վերագործարկեք սարքը՝ այս կարգավորումը փոխելու համար:"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Վերագործարկել"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Չեղարկել"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Բջջային ռադիոազդանշանի հզորությունը"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Դիտել SIM քարտի հասցեագիրքը"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Տեսնել ամրակցված հեռախոսահամարները"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Տեսնել ծառայությունների հեռախոսահամարները"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS ծառայության կարգավիճակը"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-ի կարգավիճակը"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Գրանցված է"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Գրանցված չէ"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Հասանելի"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Հասանելի չէ"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-ի գրանցում՝ <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE՝ <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over WiFi՝ <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nՏեսազանգ՝ <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT միջերես՝ <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Շահագործման մեջ է"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Չի շահագործվում"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Միայն շտապ կանչեր"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Ռադիոն անջատված է"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Ռոումինգ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ռոումինգում չէ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Անգործուն ռեժիմ"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Զանգ"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Զանգն ընթանում է"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Անջատված է"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Միացում"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Միացված է"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Անջատված է"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Անհայտ"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"բայթ"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Ընթացիկ հավելյալ ID՝"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SIM քարտի հավելյալ ID կանխադրված բջջային ինտերնետի համար՝"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL թողունակությունը (կբ/վ)՝"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL թողունակությունը (կբ/վ)՝"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Բջիջի տեղադրության տվյալներ (հնացած)՝"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ֆիզիկական ալիքի կարգավորում՝"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Բջիջի տվյալների թարմացման հաճախականությունը՝"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Բոլոր բջիջների չափման տվյալները՝"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Տվյալների ծառայություն՝"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Ռոումինգ`"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Զանգի վերահասցեավորում՝"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP վերակայումների քանակը նախորդ բեռնումից հետո`"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Ընթացիկ ցանցը`"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Ստացված տվյալները`"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Ձայնային ծառայություն՝"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Ազդանշանի հզորությունը`"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Ձայնային զանգի կարգավիճակը՝"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Ուղարկված տվյալները՝"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Հաղորդագրության սպասում՝"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Հեռախոսահամար`"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Ընտրել հաճախությունների շերտը"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Ձայնային ցանցի տեսակը՝"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Տվյալների ցանցի տեսակը՝"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Ընտրեք հեռախոսային կոդ"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Կարգավորեք ցանկալի ցանցի տեսակը՝"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Փինգ հանգույցի անուն(www.google.com) IPv4՝"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Փինգ հանգույցի անուն(www.google.com) IPv6՝"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP սպասառուի թեստ՝"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Գործարկել փինգ թեստը"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC`"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Թարմացնել"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Թարմացնել"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Փոխարկել DNS ստուգումը"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-հատուկ տեղեկություններ/կարգավորումներ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Կարգավորել հաճախությունների շերտի ռեժիմը"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Շերտերի ցուցակը բեռնվում է…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Կարգավորել"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Խափանում"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Հաջող"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Պլանշետի տեղեկություններ"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Հեռախոսի տեղեկություններ"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Օպերատորի նախապատրաստման տվյալներ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Գործարկել օպերատորի նախապատրաստումը"</string>
 </resources>
diff --git a/res/values-in/config.xml b/res/values-in/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-in/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index eb4871d..a049b5d 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Nomor pribadi"</string>
     <string name="payphone" msgid="7936735771836716941">"Telepon Umum"</string>
     <string name="onHold" msgid="6132725550015899006">"Ditangguhkan"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Message"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Pesan Operator"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Kode MMI dimulai"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Kode USSD sedang berjalan…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Kode MMI dibatalkan"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Khusus NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Mode jaringan pilihan: WCDMA lebih disukai"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Mode jaringan pilihan: GSM saja"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Mode jaringan yang disukai: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Mode jaringan yang disukai: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Mode jaringan yang disukai: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Mode jaringan pilihan: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Mode jaringan yang disukai: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Mode jaringan yang disukai: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Mode jaringan pilihan: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Mode jaringan pilihan: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Mode jaringan pilihan: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Mode jaringan pilihan: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Mode jaringan pilihan: khusus NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Mode jaringan pilihan: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Mode jaringan pilihan: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Mode jaringan pilihan: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Mode jaringan pilihan: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Mode jaringan pilihan: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Mode jaringan pilihan: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Mode jaringan pilihan: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Mode jaringan pilihan: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Mode jaringan pilihan: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Mode jaringan pilihan: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Memanggil"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Jaringan"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Mode LTE 4G yang Ditingkatkan"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-kategori"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multi-kategori diaktifkan"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multi-kategori dinonaktifkan"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (direkomendasikan)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (disarankan)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (disarankan)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Menghapus nomor panggilan tetap..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Nomor panggilan tetap dihapus."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN tidak diperbarui karena Anda memasukkan PIN yang salah."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN tidak diupdate karena nomor melebihi 20 digit."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN tidak diupdate karena nomor melebihi <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digit."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN tidak diperbarui. PIN2 salah, atau nomor telepon ditolak."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operasi FDN gagal."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Membaca dari kartu SIM…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Tidak dapat menelepon. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> bukan nomor darurat."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Tidak dapat menelepon. Panggil nomor darurat."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Panggilan darurat tidak tersedia"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Hanya pemilik perangkat yang dapat memasukkan kode PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Kantor Polisi"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulans"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Pemadam Kebakaran"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Panggilan pesan real-time (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Izinkan pengiriman pesan pada saat panggilan suara berlangsung"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT membantu penelepon yang tunarungu, kesulitan mendengar, memiliki gangguan berbicara, atau memerlukan lebih dari sekadar suara.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Pelajari lebih lanjut&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Panggilan RTT disimpan sebagai transkrip pesan\n       &lt;br&gt; - RTT tidak tersedia untuk video call"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Catatan: RTT tidak tersedia saat melakukan roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY Nonaktif"</item>
     <item msgid="1449091874731375214">"TTY Penuh"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ya"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Tidak"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Tutup"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Ponsel berada dalam mode telepon balik darurat."</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Sampai <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Ponsel akan berada dalam mode telepon balik darurat selama <xliff:g id="COUNT_1">%s</xliff:g> menit.\nApakah Anda ingin keluar sekarang?</item>
+      <item quantity="one">Ponsel akan berada dalam mode telepon balik darurat selama <xliff:g id="COUNT_0">%s</xliff:g> menit.\nApakah Anda ingin keluar sekarang?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Layanan"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Penyiapan"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Tidak disetel&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Pemblokiran panggilan dinonaktifkan"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Ubah sandi"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Ubah sandi pemblokiran panggilan"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Tidak dapat mengubah sandi pemblokiran panggilan."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Tidak dapat mengubah sandi pemblokiran panggilan"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Sandi tidak cocok"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Masukkan sandi dengan 4 angka"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Sandi diubah"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Konfirmasi sandi"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Masukkan sandi"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Setelan pemblokiran panggilan"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Nonaktifkan semua setelan pemblokiran panggilan?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Jaringan sedang sibuk. Coba hubungi lagi di lain waktu."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Jaringan sedang padat. Hubungi operator seluler Anda untuk mendapatkan bantuan."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Panggilan dialihkan."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, pastikan kuota internet diaktifkan untuk SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Anda dapat mengubahnya di setelan jaringan seluler."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, pastikan kuota internet dan roaming data diaktifkan untuk SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Anda dapat mengubahnya di setelan jaringan seluler."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Tutup"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Aktifkan Koneksi Data"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Nonaktifkan Koneksi Data"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE Disediakan"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video Call Disediakan"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Panggilan Wi-Fi Disediakan"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence Disediakan"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Data Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Aktifkan DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Mulai Ulang Perangkat?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Anda perlu memulai ulang perangkat untuk mengubah setelan."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Mulai ulang"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Batal"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Daya Radio Seluler"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Lihat Buku Alamat SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Lihat Panggilan Terbatas"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Lihat Nomor Panggilan Layanan"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status Layanan IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Status IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Terdaftar"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Tidak Terdaftar"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Tersedia"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Tidak tersedia"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Pendaftaran IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nSuara melalui LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nSuara melalui Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo Call: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nAntarmuka UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Dalam Layanan"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Di Luar Area Layanan"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Panggilan Darurat Saja"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio Nonaktif"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Tidak Roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Tidak ada aktivitas"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Berdering"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Panggilan sedang Berlangsung"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Terputus"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Menghubungkan"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Terhubung"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Ditangguhkan"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Tidak diketahui"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"byte"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"SubId saat ini:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId SIM data default:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Bandwidth DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Bandwidth UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Info Lokasi Sel (tidak digunakan lagi):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurasi Saluran Fisik LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Rasio Pembaruan Info Sel"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Semua Info Pengukuran Sel:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Layanan Data:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Pengalihan Panggilan:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Jumlah Setel Ulang PPP Sejak Boot:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Jaringan Saat Ini:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data Diterima:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Layanan Suara:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Kekuatan Sinyal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status Panggilan Suara:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data Terkirim:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Pesan Menunggu:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Nomor Telepon:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Pilih Band Radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Jenis Jaringan Suara:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Jenis Jaringan Data:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Pilih indeks ponsel"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Setel Jenis Jaringan yang Disukai:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping Hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping Hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Uji Klien HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Jalankan Uji Ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Update"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Perbarui"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Aktifkan Pemeriksaan DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Info spesifik OEM/Setelan"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Setel Mode Band Radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Memuat Daftar Band…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Setel"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Gagal"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Berhasil"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Info tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Info telepon"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Info Provisioning Operator"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Memicu Provisioning Operator"</string>
 </resources>
diff --git a/res/values-is/config.xml b/res/values-is/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-is/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 2d88ceb..2beb290 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Leyninúmer"</string>
     <string name="payphone" msgid="7936735771836716941">"Símasjálfsali"</string>
     <string name="onHold" msgid="6132725550015899006">"Í bið"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Skilaboð"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Skilaboð frá símafyrirtæki"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-kóðaskipun ræst"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-kóðaskipun í gangi…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Hætt við MMI-kóðaskipun"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Aðeins NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Valin símkerfisstilling: WCDMA fyrsta val"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Valin símkerfisstilling: GSM eingöngu"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Valin símkerfisstilling: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Valin símkerfisstilling: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Valin símkerfisstilling: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Valin símkerfisstilling: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Valin símkerfisstilling: Alþjóðleg"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Valin símkerfisstilling: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Valið símkerfi: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Valin símkerfisstilling: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Valin símkerfisstilling: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Valin símkerfisstilling: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Valin símkerfisstilling: Aðeins NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Valin símkerfisstilling: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Valin símkerfisstilling: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Valin símkerfisstilling: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Valin símkerfisstilling: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Valin símkerfisstilling: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Valin símkerfisstilling: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Valin símkerfisstilling: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Valin símkerfisstilling: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Valin símkerfisstilling: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Valin símkerfisstilling: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Hringir"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Netkerfi"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"endurbætt 4G LTE-stilling"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Margir flokkar"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Kveikt á birtingu úr mörgum flokkum"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Slökkt á birtingu úr mörgum flokkum"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ráðlagt)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ráðlagt)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (ráðlagt)"</string>
     <string name="network_global" msgid="3289646154407617631">"Alþjóðlegt"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Eyða föstu númeravali…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Föstu númeravali eytt."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Fast númeraval var ekki uppfært því að þú slóst inn rangt PIN-númer."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Fast númeraval var ekki uppfært vegna þess að númerið er lengra en 20 tölustafir."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Fast númeraval var ekki uppfært vegna þess að númerið er lengra en <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> tölustafir."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Fast númeraval var ekki uppfært. PIN2-númerið var rangt eða símanúmerinu var hafnað."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Aðgerð fasts númeravals mistókst."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Les af SIM-korti…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Ekki hægt að hringja. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> er ekki neyðarnúmer."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Ekki hægt að hringja. Hringdu í neyðarnúmer."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Neyðarsímtöl eru ekki í boði"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Aðeins eigandi tækisins getur slegið inn PIN/PUK-kóða."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Lögregla"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Sjúkrabíll"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Eldur"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"RTT-símtal (með texta í rauntíma)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Leyfa skilaboðasendingar í símtölum"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT (símtöl með texta í rauntíma) aðstoðar heyrnarlausa og fólk með heyrnarskerðingu eða skerta talgetu og þá sem þurfa að styðja sig við meira en bara hljóð.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Frekari upplýsingar&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT-símtöl eru vistuð í umrituðum skilaboðum\n       &lt;br&gt; - RTT er ekki í boði fyrir myndsímtöl"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Athugaðu: RTT er ekki í boði í reiki"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Slökkt á TTY"</item>
     <item msgid="1449091874731375214">"TTY að fullu"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Já"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nei"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Hunsa"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Síminn er í stillingu fyrir svarhringingu neyðarsímtala"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Til <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Síminn verður í stillingu fyrir svarhringingu neyðarsímtala í <xliff:g id="COUNT_1">%s</xliff:g> mínútu.\nViltu hætta núna?</item>
+      <item quantity="other">Síminn verður í stillingu fyrir svarhringingu neyðarsímtala í <xliff:g id="COUNT_1">%s</xliff:g> mínútur.\nViltu hætta núna?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Þjónusta"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Uppsetning"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ekki valið&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Slökkt á útilokun símtala"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Breyta aðgangsorði"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Breyta aðgangsorði fyrir útilokun símtala"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Ekki var hægt að breyta aðgangsorði fyrir útilokun símtala."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Ekki var hægt að breyta aðgangsorði fyrir útilokun símtala"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Aðgangsorðin stemma ekki."</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Sláðu inn aðgangsorð sem inniheldur fjóra tölustafi."</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Aðgangsorði breytt"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Staðfesta aðgangsorð"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Slá inn aðgangsorð"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Stillingar fyrir útilokun símtala"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Slökkva á öllum stillingum fyrir útilokun símtala?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Símkerfið er upptekið. Reyndu að hringja aftur síðar."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Símkerfið er upptekið. Fáðu aðstoð hjá símafyrirtækinu þínu."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Símtal flutt."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Til að nota <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> skaltu ganga úr skugga um að kveikt sé á farsímagögnum fyrir SIM-kortið <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Þú getur breytt þessu í stillingum farsímakerfis."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Til að nota <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> skaltu ganga úr skugga um að kveikt sé á farsímagögnum og gagnareiki fyrir SIM-kortið <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Þú getur breytt þessu í stillingum farsímakerfis."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Hunsa"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Kveikja á gagnatengingu"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Slökkva á gagnatengingu"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-úthlutun"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Myndsímtali úthlutað"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi símtali úthlutað"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/viðveru úthlutað"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-gögn"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Virkja DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Endurræsa tæki?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Endurræsa þarf tækið til að breyta þessari stillingu."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Endurræsa"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Hætta við"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Loftnetsstyrkur farsíma"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Skoða símaskrá SIM-korts"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Skoða læst númeraval"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Skoða þjónustunúmer"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Þjónustustaða IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Staða IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Skráð"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Ekki skráð"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Viðlátin(n)"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Ekki í boði"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Skráning IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nRödd með LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nRödd með Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nMyndsímtöl: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT viðmót: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Innan þjónustusvæðis"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Utan þjónustusvæðis"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Aðeins neyðarsímtöl"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Slökkt á loftneti"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Reiki"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ekki í reiki"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Óvirkt"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Hringir"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Símtal í gangi"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Aftengt"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Tengist"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Tengt"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Lokað tímabundið"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Óþekkt"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pk."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bæti"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Núverandi undirauðkenni:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Undirauðkenni sjálfgefins SIM-korts fyrir gögn:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Niðurhalsbandvídd (kb/sek.):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Upphleðslubandvídd (kb/sek.):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Staðsetningarupplýsingar loftneta (úrelt):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE-rásarstilling:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Endurnýjunartíðni loftnetaupplýsinga:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Allar mælingarupplýsingar loftneta:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Gagnaþjónusta:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Reiki:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Símtalsflutningur:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Fjöldi PPP-endurstillinga frá ræsingu:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Núverandi kerfi:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Gögn móttekin:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Raddþjónusta:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Sendistyrkur:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Staða símtals:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Gögn send:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Skilaboð í bið:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Símanúmer:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Velja útvarpstíðni"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Netkerfi raddþjónustu:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tegund gagnanets:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Velja atriðaskrá síma"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Veldu kjörsímkerfi:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping Hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping Hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Prófun HTTP-biðlara:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Keyra ping-próf"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Uppfæra"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Endurnýja"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Kveikja/slökkva á DNS-prófun"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Upplýsingar/stillingar framleiðanda"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Velja útvarpstíðni"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Hleður lista yfir tíðnisvið…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Stilla"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Mistókst"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Heppnaðist"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Upplýsingar um spjaldtölvu"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Upplýsingar um síma"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Úthlutunarupplýsingar símafyrirtækis"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Kveikja á úthlutun símafyrirtækis"</string>
 </resources>
diff --git a/res/values-it/config.xml b/res/values-it/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-it/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 2d0057f..99436d9 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Numero privato"</string>
     <string name="payphone" msgid="7936735771836716941">"Cabina telefonica"</string>
     <string name="onHold" msgid="6132725550015899006">"In attesa"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Messaggio <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Messaggio dell\'operatore"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Codice MMI avviato"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Esecuzione codice USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Codice MMI annullato"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Solo NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modalità di rete preferita: WCDMA (preferita)"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modalità di rete preferita: solo GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Modalità di rete preferita: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Modalità di rete preferita: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Modalità di rete preferita: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Modalità di rete preferita: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Modalità di rete preferita: globale"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Modalità di rete preferita: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modalità di rete preferita: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Modalità di rete preferita: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Modalità di rete preferita: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Modalità di rete preferita: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Modalità di rete preferita: solo NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Modalità di rete preferita: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Modalità di rete preferita: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Modalità di rete preferita: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Modalità di rete preferita: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Modalità di rete preferita: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Modalità di rete preferita: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Modalità di rete preferita: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Modalità di rete preferita: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Modalità di rete preferita: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Modalità di rete preferita: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Chiamata in corso"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Rete"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modalità 4G LTE avanzata"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multicategoria"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multicategoria attivata"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multicategoria disattivata"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (consigliata)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (opzione consigliata)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (opzione consigliata)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globale"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Eliminazione numero selezione fissa..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Numero di selezione fissa eliminato."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Numeri consentiti non aggiornati perché il PIN inserito non è corretto."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"I numeri consentiti non sono stati aggiornati perché il numero supera le 20 cifre."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"I numeri consentiti non sono stati aggiornati perché il numero supera le <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> cifre."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Numeri consentiti non aggiornati. Il codice PIN2 non era corretto o il numero di telefono è stato rifiutato."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operazione numeri consentiti non riuscita."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lettura da SIM..."</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Impossibile chiamare. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> non è un numero di emergenza."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Impossibile chiamare. Componi un numero di emergenza."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Chiamate di emergenza non disponibili"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Solo il proprietario del dispositivo può inserire i codici PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polizia"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulanza"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Vigili del fuoco"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Chiamate con Real-time text (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Consenti l\'utilizzo di messaggi durante le chiamate vocali"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT aiuta i chiamanti con disabilità uditive o del linguaggio e le persone che hanno bisogno di un supporto scritto oltre alla voce.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Ulteriori informazioni&lt;/a&gt;\n &lt;br&gt;&lt;br&gt; - Le chiamate RTT vengono salvate come una trascrizione in messaggi\n &lt;br&gt; - RTT non è disponibile per le videochiamate"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Nota: la funzionalità RTT non è disponibile in roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY disattivato"</item>
     <item msgid="1449091874731375214">"TTY completo"</item>
@@ -611,6 +639,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sì"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ignora"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Il telefono è in modalità di richiamata di emergenza"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Fino alle ore <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Il telefono sarà in modalità di richiamata di emergenza per <xliff:g id="COUNT_1">%s</xliff:g> minuti.\nVuoi uscire ora?</item>
+      <item quantity="one">Il telefono sarà in modalità di richiamata di emergenza per <xliff:g id="COUNT_0">%s</xliff:g> minuto.\nVuoi uscire ora?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Servizio"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configurazione"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Non impostato&gt;"</string>
@@ -750,7 +784,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Blocco chiamate disattivato"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Modifica password"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Modifica la password di blocco chiamate"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Impossibile modificare la password di blocco chiamate."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Impossibile modificare la password di blocco chiamate"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Le password non corrispondono"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Inserisci una password con 4 numeri"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Password modificata"</string>
@@ -759,7 +793,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Conferma password"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Inserisci password"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Impostazioni di blocco chiamate"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Disattivare tutte le impostazioni di blocco chiamate?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"La rete è occupata. Riprova a chiamare di nuovo più tardi."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"La rete è congestionata. Contatta il tuo gestore di telefonia mobile per ricevere assistenza."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Chiamata deviata."</string>
@@ -789,4 +822,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Per utilizzare <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assicurati che i dati mobili siano attivi per la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puoi modificare questa opzione nelle impostazioni della rete mobile."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Per utilizzare <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assicurati che i dati mobili e il roaming dei dati siano attivi per la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puoi modificare queste opzioni nelle impostazioni della rete mobile."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ignora"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Abilita connessione dati"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Disabilita connessione dati"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Provisioning VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videochiamate fornite"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Chiamate tramite Wi-Fi fornite"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Provisioning EAB/Presence completato"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Dati CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Abilita DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Riavviare il dispositivo?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Riavvia il dispositivo per modificare questa impostazione."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Riavvia"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annulla"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Potenza del segnale radio mobile"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Visualizza rubrica SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Visualizza numeri consentiti"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Visualizza numeri dell\'elenco dei numeri di servizio"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Stato del servizio IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Stato IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrato"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Non registrato"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponibile"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Non disponibile"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registrazione IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nChiamate tramite LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nChiamate tramite Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideochiamata: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterfaccia UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In servizio"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Fuori servizio"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Solo chiamate di emergenza"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Segnale radio off"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"In roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Non in roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inattivo"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Squillo in corso"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Chiamata in corso"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Disconnesso"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Connessione"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Connesso"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Sospeso"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Sconosciuto"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkt"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"byte"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"Sistema di identificazione contenuti"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ID secondario corrente:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ID secondario della SIM dati predefinita:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Larghezza di banda DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Larghezza di banda UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informazioni sulla posizione delle celle (obsoleto):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configurazione canale fisico LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frequenza di aggiornamento delle informazioni sulle celle:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Informazioni sulla misurazione di tutte le celle:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Servizio dati:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Reindirizzamento chiamate:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Numero di PPP reimpostati dall\'avvio:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Rete corrente:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Dati ricevuti:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Servizio vocale:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Intensità del segnale:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Stato della chiamata vocale:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Dati inviati:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Messaggio in attesa:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Numero di telefono:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Seleziona banda radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipo di rete vocale:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipo di rete di dati:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Seleziona indice telefonico"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Imposta tipo di rete preferito:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping nome host (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping nome host (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test client HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Invia ping di test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Aggiorna"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Aggiorna"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Attiva o disattiva verifica DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Info/impostazioni specifiche OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Imposta modalità banda radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Caricamento elenco bande…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Imposta"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Operazione non riuscita"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Operazione riuscita"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Info tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Info telefono"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informazioni sul provisioning operatore"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Attiva provisioning operatore"</string>
 </resources>
diff --git a/res/values-iw/config.xml b/res/values-iw/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-iw/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 4937d0f..8ff930b 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"מספר פרטי"</string>
     <string name="payphone" msgid="7936735771836716941">"טלפון ציבורי"</string>
     <string name="onHold" msgid="6132725550015899006">"בהמתנה"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"הודעה דרך <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"הודעה מהספק הסלולרי"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"‏קוד MMI הופעל"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"‏קוד USSD פועל…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"‏קוד MMI מבוטל"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"‏NR בלבד"</item>
+    <item msgid="2935877729588775187">"‏NR‏/LTE"</item>
+    <item msgid="8967513231424970529">"‏NR‏/LTE‏/CDMA‏/EvDo"</item>
+    <item msgid="1542643426479755015">"‏NR‏/LTE‏/GSM‏/WCDMA"</item>
+    <item msgid="5778162260258129841">"‏NR‏/LTE‏/CDMA‏/EvDo‏/GSM‏/WCDMA"</item>
+    <item msgid="8088614845214545367">"‏NR‏/LTE‏/WCDMA"</item>
+    <item msgid="6517428040626326776">"‏NR‏/LTE‏/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"‏NR‏/LTE‏/TDSCDMA‏/GSM"</item>
+    <item msgid="4130965694947056705">"‏NR/‏LTE/‏TDSCDMA‏/WCDMA"</item>
+    <item msgid="3869566732842046032">"‏NR‏/LTE‏/TDSCDMA‏/GSM‏/WCDMA"</item>
+    <item msgid="3942770927563146543">"‏NR‏/LTE‏/TDSCDMA‏/CDMA‏/EvDo‏/GSM‏/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"‏מצב רשת מועדפת: WCDMA מועדף"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"‏מצב רשת מועדפת: GSM בלבד"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"‏מצב רשת מועדף: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"‏מצב רשת מועדף: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"‏מצב רשת מועדף: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"‏מצב רשת מועדפת: LTE‏/CDMA‏/EvDo‏/GSM‏/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"מצב רשת מועדף: גלובלי"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"‏מצב רשת מועדף: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"‏מצב רשת מועדף: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"‏מצב רשת מועדף: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"‏מצב רשת מועדף: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"‏מצב רשת מועדף: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"‏מצב רשת מועדפת: NR בלבד"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"‏מצב רשת מועדפת: NR ‏/ LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"‏מצב רשת מועדפת: NR‏/LTE‏/CDMA‏/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"‏מצב רשת מועדפת: NR‏/LTE‏/GSM‏/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"‏מצב רשת מועדפת: NR‏/LTE‏/CDMA‏/EvDo‏/GSM‏/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"‏מצב רשת מועדפת: NR‏/LTE‏/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"‏מצב רשת מועדפת: NR‏/LTE‏/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"‏מצב רשת מועדפת: NR‏/LTE‏/TDSCDMA‏/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"‏מצב רשת מועדפת: NR‏/LTE‏/TDSCDMA‏/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"‏מצב רשת מועדפת: NR‏/LTE‏/TDSCDMA‏/GSM‏/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"‏מצב רשת מועדפת: NR‏/LTE‏/TDSCDMA‏/CDMA‏/EvDo‏/GSM‏/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"שיחות"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"רשת"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"‏מצב 4G LTE משופר"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ריבוי קטגוריות"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"ריבוי קטגוריות מופעל"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ריבוי קטגוריות מושבת"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (מומלץ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"‏LTE (מומלץ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"‏4G (מומלץ)"</string>
     <string name="network_global" msgid="3289646154407617631">"גלובלי"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"מוחק מספר חיוג קבוע..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"מספר חיוג קבוע נמחק."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"רשימת מספרי חיוג קבועים לא עודכנה מכיוון שקוד הגישה שגוי."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"‏ה-FDN לא עודכן בגלל שהמספר ארוך מ-20 תווים."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"‏מספר ה-FDN לא עודכן כי הוא מכיל יותר מ-<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ספרות."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"רשימת מספרי החיוג הקבועים לא עודכנה. קוד הגישה היה שגוי או שמספר הטלפון נדחה."</string>
     <string name="fdn_failed" msgid="216592346853420250">"‏פעולת FDN נכשלה."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"‏קורא מכרטיס SIM…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"לא ניתן להתקשר. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> אינו מספר חירום."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"לא ניתן להתקשר. חייג למספר חירום."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"אי אפשר לבצע שיחות חירום"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"‏רק הבעלים של המכשיר יכול להזין קודי אימות/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"משטרה"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"אמבולנס"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"אש"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"‏שיחת RTT (טקסט בזמן אמת)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"אפשר לשלוח הודעות טקסט בזמן שיחה"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"‏RTT (טקסט בזמן אמת) היא תכונת נגישות שעוזרת לחרשים, לקויי שמיעה, לקויי דיבור או אנשים שלא יכולים להסתפק רק בשיחות קוליות.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;למידע נוסף&lt;/a&gt;‏\n      &lt;br&gt;&lt;br&gt; - שיחות RTT מתומללות ונשמרות כהודעות\n &lt;br&gt; - אי אפשר להשתמש ב-RTT לשיחות וידאו"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"‏הערה: אי אפשר להשתמש ב-RTT בזמן נדידה"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"‏TTY כבוי"</item>
     <item msgid="1449091874731375214">"‏TTY מלא"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"כן"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"לא"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"סגור"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"הטלפון במצב \'התקשרות בחזרה בחירום\'"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"עד <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="two">הטלפון יהיה במצב \'התקשרות בחזרה בחירום\' ל-<xliff:g id="COUNT_1">%s</xliff:g> דקות.\nרוצה לצאת מהמצב הזה?</item>
+      <item quantity="many">הטלפון יהיה במצב \'התקשרות בחזרה בחירום\' ל-<xliff:g id="COUNT_1">%s</xliff:g> דקות.\nרוצה לצאת מהמצב הזה?</item>
+      <item quantity="other">הטלפון יהיה במצב \'התקשרות בחזרה בחירום\' ל-<xliff:g id="COUNT_1">%s</xliff:g> דקות.\nרוצה לצאת מהמצב הזה?</item>
+      <item quantity="one">הטלפון יהיה במצב \'התקשרות בחזרה בחירום\' לדקה אחת (<xliff:g id="COUNT_0">%s</xliff:g>).\nרוצה לצאת מהמצב הזה?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"שירות"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"הגדרות"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;לא מוגדר&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"חסימת השיחות הושבתה"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"שינוי הסיסמה"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"שינוי הסיסמה לחסימת שיחות"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"אי אפשר לשנות את הסיסמה לחסימת שיחות."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"אי אפשר לשנות את הסיסמה לחסימת שיחות"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"הסיסמאות לא תואמות"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"צריך להזין סיסמה בת 4 ספרות"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"הסיסמה שונתה"</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"אישור הסיסמה"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"זה המקום להזין סיסמה"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ההגדרות של חסימת שיחות"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"להשבית את כל ההגדרות של חסימת שיחות?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"יש עומס על הרשת. אפשר לנסות להתקשר שוב מאוחר יותר."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"יש עומס על הרשת. אפשר לפנות לספק הסלולרי לקבלת עזרה."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"השיחה נותבה למספר אחר."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"‏כדי להשתמש בשירות \'<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>\', צריך לוודא שהחיבור לחבילת הגלישה מופעל בכרטיס ה-SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. אפשר להפעיל אותו בהגדרות של הרשת הסלולרית."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"‏כדי להשתמש בשירות \'<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>\', צריך לוודא שהחיבור לחבילת הגלישה והנדידה מופעלים בכרטיס ה-SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. אפשר להפעיל אותם בהגדרות של הרשת הסלולרית."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"סגירה"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"הפעלת חיבור נתונים"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"השבת חיבור נתונים"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"‏ניהול התצורה של VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ניהול תצורה של שיחות וידאו"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"‏ניהול תצורה של שיחות Wifi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"‏ניהול תצורה של נוכחות/EAB מופעל"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"‏נתוני CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"‏הפעלת DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"להפעיל מכשיר מחדש?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"עליך להפעיל מחדש את המכשיר כדי לשנות הגדרה זו."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"הפעלה מחדש"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ביטול"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"הפעלה של רדיו סלולרי"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"‏הצגת פנקס כתובות של SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"הצגת מספרי חיוג קבועים"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"מספרי חיוג לשירות"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"‏סטטוס שירות IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"‏סטטוס IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"רשום"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"לא רשום"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"זמין"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ההגדרה לא זמינה"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"‏הרשמה ל-IMS:‏ <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE:‏ <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over Wi-Fi:‏ <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nשיחות וידאו: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nממשק UT:‏ <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"בשירות"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"לא תקין"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"שיחות חירום בלבד"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"כיבוי הרדיו"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"נדידה"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"לא בנדידה"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"לא פעיל"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"מושמע צלצול"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"שיחה מתבצעת"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"מנותק"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"מתבצעת התחברות"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"מקושר"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"בהשעיה"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"לא ידוע"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"בייטים"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"תת-מזהה נוכחי:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"‏תת-מזהה של כרטיס ה-SIM עם חבילת גלישה המוגדר כברירת מחדל:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"‏רוחב פס DL (ב-kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"‏רוחב פס UL (ב-kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"מידע על מיקום סלולרי (הוצא משימוש):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"‏תצורת ערוץ פיזי של LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"קצב רענון של מידע סלולרי:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"כל המידע של מדידה סלולרית:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"שירות נתונים:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"נדידה:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"הפניה מחדש של שיחה:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"‏מספר איפוסי PPP מאז ההפעלה:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"רשת נוכחית:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"הנתונים שהתקבלו:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"שירות קולי:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"עוצמת אות:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"סטטוס שיחה קולית:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"הנתונים נשלחו:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"הודעה ממתינה:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"מספר טלפון:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"בחירת תדר רדיו"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"סוג רשת קולית:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"סוג רשת נתונים:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"בחירת אינדקס טלפון"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"הגדרת סוג רשת מועדף:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"‏נדנד לשם המארח (www.google.com) מסוג IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"‏נדנוד לשם המארח (www.google.com) מסוג IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"‏בדיקת לקוח HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"הפעלת בדיקת פינג"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"עדכון"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"רענון"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"‏החלפת מצב של בדיקת DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"‏מידע/הגדרות ספציפיים ל-OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"הגדרת מצב תדרים של רדיו"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"טוען רשימת תדרים…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"הגדרה"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"נכשל"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"עבר בהצלחה"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"פרטי טאבלט"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"פרטי טלפון"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"פרטי ניהול תצורה של ספק סלולרי"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"הפעלת ניהול תצורה של ספק סלולרי"</string>
 </resources>
diff --git a/res/values-ja/config.xml b/res/values-ja/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ja/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 179a752..2730bad 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"非通知設定"</string>
     <string name="payphone" msgid="7936735771836716941">"公衆電話"</string>
     <string name="onHold" msgid="6132725550015899006">"保留中"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> からのメッセージ"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"携帯通信会社独自のメッセージ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMIコードの開始"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSDコードを実行中..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMIコードはキャンセルされました"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE / TDSCDMA / GSM / WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</item>
     <item msgid="6284311629324843506">"LTE / TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</item>
+    <item msgid="4738087170533378966">"NR のみ"</item>
+    <item msgid="2935877729588775187">"NR / LTE"</item>
+    <item msgid="8967513231424970529">"NR / LTE / CDMA / EV-DO"</item>
+    <item msgid="1542643426479755015">"NR / LTE / GSM / WCDMA"</item>
+    <item msgid="5778162260258129841">"NR / LTE / CDMA / EV-DO / GSM / WCDMA"</item>
+    <item msgid="8088614845214545367">"NR / LTE / WCDMA"</item>
+    <item msgid="6517428040626326776">"NR / LTE / TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR / LTE / TDSCDMA / GSM"</item>
+    <item msgid="4130965694947056705">"NR / LTE / TDSCDMA / WCDMA"</item>
+    <item msgid="3869566732842046032">"NR / LTE / TDSCDMA / GSM / WCDMA"</item>
+    <item msgid="3942770927563146543">"NR / LTE / TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"優先ネットワークモード: WCDMA優先"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"優先ネットワークモード: GSMのみ"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"優先ネットワークモード: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"優先ネットワークモード: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"優先ネットワークモード: CDMA+LTE/EV-DO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"優先ネットワーク モード: LTE / CDMA / CDMA / EV-DO / GSM / WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"優先ネットワークモード: グローバル"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"優先ネットワークモード: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"推奨ネットワークモード: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"優先ネットワーク モード: LTE / TDSCDMA / GSM / WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"優先ネットワーク モード: TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"優先ネットワーク モード: LTE / TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"優先ネットワーク モード: NR のみ"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"優先ネットワーク モード: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"優先ネットワーク モード: NR / LTE / CDMA / EV-DO"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"優先ネットワーク モード: NR / LTE / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"優先ネットワーク モード: NR / LTE / CDMA / EV-DO / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"優先ネットワーク モード: NR / LTE / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"優先ネットワーク モード: NR / LTE / TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"優先ネットワーク モード: NR / LTE / TDSCDMA / GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"優先ネットワーク モード: NR / LTE / TDSCDMA / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"優先ネットワーク モード: NR / LTE / TDSCDMA / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"優先ネットワーク モード: NR / LTE / TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"通話"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ネットワーク"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"4G LTE拡張モード"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"複数カテゴリ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"複数カテゴリは有効になっています"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"複数カテゴリは無効になっています"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" （推奨）"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE（推奨）"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G（推奨）"</string>
     <string name="network_global" msgid="3289646154407617631">"グローバル"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"発信番号制限を削除しています..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"発信番号制限を削除しました。"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"発信番号制限は更新されませんでした。入力したPINは正しくありません。"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN は更新されませんでした。20 桁を超える番号は指定できません。"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"この電話番号の桁数が <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> 桁を超えているため、FDN を更新できませんでした。"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"発信番号制限は更新されませんでした。PIN2が正しくないか、電話番号が拒否されました。"</string>
     <string name="fdn_failed" msgid="216592346853420250">"発信番号制限操作に失敗しました。"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIMカードから読み取り中..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"発信できません。<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g>は緊急通報番号ではありません。"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"発信できません。緊急通報番号におかけください。"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"緊急通報はご利用いただけません"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"PIN コードと PUK コードを入力できるのはデバイスの所有者のみとなります。"</string>
     <string name="police_type_description" msgid="2819533883972081757">"警察"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"救急車"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"消防車"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"リアルタイム テキスト（RTT）通話"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"音声通話中のメッセージ送信を許可する"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT は、聴覚障害や言語障害があるなど、音声だけではコミュニケーションを取ることが困難なユーザーをサポートする機能です。&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;詳細&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT 通話は文字に変換して保存されます\n       &lt;br&gt; - RTT はビデオ通話ではご利用いただけません"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"注: ローミング中に RTT を利用することはできません"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY OFF"</item>
     <item msgid="1449091874731375214">"TTY フル"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"はい"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"いいえ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"解除"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"スマートフォンが緊急通報待機モードになっています"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> まで"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">スマートフォンが <xliff:g id="COUNT_1">%s</xliff:g> 分間にわたって緊急通報待機モードになります。\n今すぐ終了してもよろしいですか？</item>
+      <item quantity="one">スマートフォンが <xliff:g id="COUNT_0">%s</xliff:g> 分間にわたって緊急通報待機モードになります。\n今すぐ終了してもよろしいですか？</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"サービス"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"セットアップ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;未設定&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"通話制限が無効になりました"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"パスワードを変更"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"通話制限パスワードを変更"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"通話制限パスワードを変更できません。"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"通話制限パスワードを変更することはできません"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"パスワードが一致しません"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 桁の数字のパスワードを入力"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"パスワードが変更されました"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"パスワードを確認"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"パスワードを入力"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"通話制限設定"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"通話制限設定をすべて無効にしますか？"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ネットワークがビジー状態です。しばらくしてからもう一度通話を発信してみてください。"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ネットワークが混雑しています。サポートが必要な場合は携帯通信会社にお問い合わせください。"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"通話が転送されました。"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>を利用するには、SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> のモバイルデータが ON になっている必要があります。モバイルデータの ON と OFF の切り替えは、モバイル ネットワーク設定で行えます。"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>を利用するには、SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> のモバイルデータとデータ ローミングが ON になっている必要があります。これらの ON と OFF の切り替えは、モバイル ネットワーク設定で行えます。"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"閉じる"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"データ接続を有効にする"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"データ接続を無効にする"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE プロビジョニング有効"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ビデオ通話プロビジョニング有効"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi 通話プロビジョニング有効"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB / プレゼンス プロビジョニング有効"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS データ"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS を有効にする"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"デバイスを再起動しますか？"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"この設定を変更するには、デバイスの再起動が必要です。"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"再起動"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"キャンセル"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"モバイル無線電力"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM のアドレス帳を表示"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"発信番号制限を表示"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"サービス電話番号を表示"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS サービスのステータス"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS ステータス"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"登録済み"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"未登録"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"使用可能"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"使用不可"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS 登録: <xliff:g id="STATUS">%1$s</xliff:g>\nボイスオーバー LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nボイスオーバー WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nビデオ通話: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT インターフェース: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"圏内"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"圏外"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"緊急通報のみ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"無線通信 OFF"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ローミング"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ローミングなし"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"アイドル状態"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"着信中"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"通話中"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"未接続"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"接続しています"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"接続済み"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"停止中"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"不明"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"バイト"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"現在の SUBID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"デフォルトのデータ SIM の SUBID:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL 帯域幅（kbps）:"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL 帯域幅（kbps）:"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"セルの位置情報（サポート終了）:"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE の物理チャネル設定:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"セル情報の更新間隔:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"すべてのセルの測定情報:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"データサービス:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ローミング:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"通話のリダイレクト:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"起動後の PPP リセット回数:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"現在のネットワーク:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"受信データ:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"音声サービス:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"電波強度:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"音声通話のステータス:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"送信データ:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"メッセージ待機中:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"電話番号:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"無線バンドを選択"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"音声ネットワークの種類:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"データ ネットワークの種類:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"スマートフォンのインデックスを選択"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"優先ネットワークの種類を設定:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ホスト名（www.google.com）の ping（IPv4）:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ホスト名（www.google.com）の ping（IPv6）:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP クライアント テスト:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ping テストの実行"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"更新"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"更新"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS チェックを切り替え"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM 固有の情報 / 設定"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"無線バンドモードの設定"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"バンドリストを読み込み中…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"設定"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"失敗"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"成功"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"タブレット情報"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"スマートフォン情報"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"携帯通信会社のプロビジョニング情報"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"携帯通信会社のプロビジョニングをトリガー"</string>
 </resources>
diff --git a/res/values-ka/config.xml b/res/values-ka/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ka/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index a779637..7a87211 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"დაფარული ნომერი"</string>
     <string name="payphone" msgid="7936735771836716941">"გადახდის ტელეფონი"</string>
     <string name="onHold" msgid="6132725550015899006">"შეყოვნების რეჟიმში"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>-ის შეტყობინება"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"ოპერატორის შეტყობინება"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI კოდი დაიწყო"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD კოდი გაშვებულია…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI კოდი გაუქმდა"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"მხოლოდ NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ქსელის სასურველი რეჟიმი: WCDMA უპირატესობა"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ქსელის სასურველი რეჟიმი: მხოლოდ GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ქსელის სასურველი რეჟიმი: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ქსელის სასურველი რეჟიმი: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ქსელის სასურველი რეჟიმი: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"ქსელის სასურველი რეჟიმი: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ქსელის სასურველი რეჟიმი: გლობალური"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ქსელის სასურველი რეჟიმი: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"სასურველი ქსელის რეჟიმი: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"ქსელის უპირატესი რეჟიმი: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"ქსელის უპირატესი რეჟიმი: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"ქსელის უპირატესი რეჟიმი: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"ქსელის სასურველი რეჟიმი: მხოლოდ NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"ქსელის სასურველი რეჟიმი: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"ქსელის სასურველი რეჟიმი: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"ქსელის სასურველი რეჟიმი: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"ქსელის სასურველი რეჟიმი: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"ქსელის სასურველი რეჟიმი: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"ქსელის სასურველი რეჟიმი: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"ქსელის სასურველი რეჟიმი: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"ქსელის სასურველი რეჟიმი: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"ქსელის სასურველი რეჟიმი: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"ქსელის სასურველი რეჟიმი: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"დარეკვა"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ქსელი"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"გაუმჯობესებული 4G LTE რეჟიმი"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"მრავალკატეგორიანი"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"მრავალი კატეგორია ჩართულია"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"მრავალი კატეგორია გამორთულია"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (რეკომენდებული)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (რეკომენდებული)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (რეკომენდებული)"</string>
     <string name="network_global" msgid="3289646154407617631">"გლობალური"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"დაშვებული დარეკვის კონტაქტის წაშლა…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"დაშვებული ნომერი წაიშალა."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN არ განახლდა, რადგან არასწორი PIN შეიყვანეთ."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN არ განახლებულა, რადგან რიცხვი 20 ციფრზე მეტს შეიცავს."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN არ განახლებულა, რადგან ნომერი <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ციფრზე მეტს შეიცავს."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN არ განახლდა. PIN2 არასწორია ან ტელეფონის ნომერი უარყოფილია."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN ოპერაცია ვერ განხორციელდა."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"მიმდინარეობს SIM ბარათიდან წაკითხვა…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"არ ირეკება. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> არ არის საგანგებო ნომერი."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"დარეკვა ვერ ხორციელდება. აკრიფეთ საგანგებო ნომერი."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"გადაუდებელი ზარი მიუწვდომელია"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"PIN/PUK კოდების შეყვანა მხოლოდ მოწყობილობის მფლობელს შეუძლია."</string>
     <string name="police_type_description" msgid="2819533883972081757">"პოლიცია"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"სასწრაფო"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"სახანძრო"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"ზარი შეტყობინებით რეალურ დროში (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"შეტყობინებების დაშვება ხმოვან ზარში"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT დახმარებას უწევს ყრუ, სმენადაქვეითებულ, შეზღუდული მეტყველების მქონე აბონენტებს, ან მათ, ვისაც სჭირდება მეტი, ვიდრე მხოლოდ ხმაა.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;შეიტყვეთ მეტი&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; — RTT ზარები ინახება შეტყობინების ტრანსკრიპტის სახით\n       &lt;br&gt; — RTT არ არის ხელმისაწვდომი ვიდეოზარებისთვის"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"შენიშვნა: RTT მიუწვდომელია როუმინგის დროს"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY გამორთულია"</item>
     <item msgid="1449091874731375214">"TTY სრული"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"დიახ"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"არა"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"იგნორირება"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ტელეფონი გადაუდებელი გადმორეკვის რეჟიმშია"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g>-მდე"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">ტელეფონი <xliff:g id="COUNT_1">%s</xliff:g> წუთის განმავლობაში გადაუდებელი გადმორეკვის რეჟიმში იქნება.\nგსურთ გასვლა ახლავე?</item>
+      <item quantity="one">ტელეფონი <xliff:g id="COUNT_0">%s</xliff:g> წუთის განმავლობაში გადაუდებელი გადმორეკვის რეჟიმში იქნება.\nგსურთ გასვლა ახლავე?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"სერვისი"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"დაყენება"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;არ არის დაყენებული&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ზარების აკრძალვის დეაქტივაცია"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"პაროლის შეცვლა"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"ზარების აკრძალვის პაროლის შეცვლა"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"ზარების აკრძალვის პაროლის შეცვლა შეუძლებელია."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"ზარების აკრძალვის პაროლის შეცვლა შეუძლებელია"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"პაროლები არ ემთხვევა"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"შეიყვანეთ პაროლი 4 ციფრით"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"პაროლი შეიცვალა"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"დაადასტურეთ პაროლი"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"შეიყვანეთ პაროლი"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ზარების აკრძალვის პარამეტრები"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"გსურთ ზარების აკრძალვის ყველა პარამეტრის დეაქტივაცია?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ქსელი დაკავებულია. გთხოვთ, სცადოთ დარეკვა მოგვიანებით."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ქსელი დატვირთულია. დახმარებისთვის დაუკავშირდით თქვენს მობილურ ოპერატორს."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"მოხდა ზარის აცილება."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>-ის გამოსაყენებლად დარწმუნდით, რომ მობილური ინტერნეტი ჩართულია SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-სთვის. ეს შეგიძლიათ მობილური ქსელის პარამეტრებში შეცვალოთ."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>-ის გამოსაყენებლად დარწმუნდით, რომ მობილური ინტერნეტი და ინტერნეტის როუმინგი ჩართულია SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-სთვის. ეს შეგიძლიათ მობილური ქსელის პარამეტრებში შეცვალოთ."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"დახურვა"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"მონაცემთა კავშირის ჩართვა"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"მობილური ინტერნეტის გათიშვა"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE უზრუნველყოფილია"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ვიდეოზარი უზრუნველყოფილია"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi დარეკვა უზრუნველყოფილია"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence უზრუნველყოფილია"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS მონაცემები"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS-ის ჩართვა"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"გსურთ მოწყობილობის გადატვირთვა?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ამ პარამეტრის შესაცვლელად საჭიროა მოწყობილობის გადატვირთვა."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"გადატვირთვა"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"გაუქმება"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"მობილური რადიოკავშირის ელკვება"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM-ის მისამართების წიგნის ნახვა"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"დაშვებული ნომრების ნახვა"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"სერვისის დარეკილი ნომრების ნახვა"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS სერვისის სტატუსი"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-ის სტატუსი"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"რეგისტრირებული"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"არარეგისტრირებული"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ხელმისაწვდომი"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"მიუწვდომელია"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-ის რეგისტრაცია: <xliff:g id="STATUS">%1$s</xliff:g>\nVoLTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoWi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nვიდეოზარი: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ინტერფეისი: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"მომსახურების არეში"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"გასულია მომსახურების არიდან"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"მხოლოდ გადაუდებელი ზარები"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"რადიოკავშირი გამორთულია"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"როუმინგი"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"როუმინგის გარეშე"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"უმოქმედო"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"ირეკება"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"მიმდინარეობს ზარი"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"კავშირი გაწყდა"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"მიმდინარეობს დაკავშირება"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"დაკავშირებულია"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"შეჩერებულია"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"უცნობი"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"პკტ."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ბაიტი"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ახლანდელი subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"მონაცემების ნაგულისხმევი SIM-ის subId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-არხის გამტარუნარიანობა (კბიტ/წმ):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-არხის გამტარუნარიანობა (კბიტ/წმ):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ფიჭური მდებარეობის ინფორმაცია (მოძველდა):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ფიზიკური არხის კონფიგურაცია:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ფიჭური ინფორმაციის განახლების სიხშირე:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"სრული ინფორმაცია ფიჭური ქსელის შესახებ:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"მობილური ინტერნეტის სერვისი:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"როუმინგი:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ზარების გადამისამართება:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP ჩამოყრების რაოდენობა ჩატვირთვის შემდეგ:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"გამოყენებული ქსელი:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"მიღებული მონაცემები:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ხმოვანი კავშირის სერვისი:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"სიგნალის სიმძლავრე:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ხმოვანი ზარის სტატუსი:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"გაგზავნილი მონაცემები:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"მომლოდინე შეტყობინება:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ტელეფონის ნომერი:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"რადიოდიაპაზონის არჩევა"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ხმოვანი კავშირის ტიპი:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"მობილური ინტერნეტის ტიპი:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"სატელეფონო ინდექსის არჩევა"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"მიუთითეთ ქსელის სასურველი ტიპი:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping-ის მოთხოვნა ჰოსტის სახელისთვის(www.google.com), IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping-ის მოთხოვნა ჰოსტის სახელისთვის(www.google.com), IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP კლიენტის ტესტი:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ping ტესტის გაშვება"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"განახლება"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"განახლება"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS შემოწმების გადართვა"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"ინფორმაცია/პარამეტრები სპეციალურად OEM-ისთვის"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"რადიოდიაპაზონის რეჟიმის დაყენება"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"მიმდინარეობს დიაპაზონთა სიის ჩატვირთვა…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"დაყენება"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"წარუმატებლად დასრულდა"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"წარმატებით შესრულდა"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ინფორმაცია ტაბლეტის შესახებ"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ტელეფონის ინფორმაცია"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ოპერატორის უზრუნველყოფის ინფორმაცია"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ოპერატორის უზრუნველყოფის გააქტიურება"</string>
 </resources>
diff --git a/res/values-kk/config.xml b/res/values-kk/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-kk/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 9bd6347..f41b4bd 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Жеке нөмір"</string>
     <string name="payphone" msgid="7936735771836716941">"Автомат-телефон"</string>
     <string name="onHold" msgid="6132725550015899006">"Күтуде"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> хабары"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Оператордың хабары"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI коды басталды"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD коды қосулы…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI коды жарамсыздандырылған"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Тек NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Қалаулы желі режимі: WCDMA таңдалды"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Қалаулы желі режимі: GSM ғана"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Қалаулы желі режимі: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Қалаулы желі режимі: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Қалаулы желі режимі: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Оңтайлы желі режимі: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Қалаулы желі режимі: Жаһандық"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Қалаулы желі режимі: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Таңдаулы желі режимі: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Таңдалған желі режимі: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Таңдалған желі режимі: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Таңдалған желі режимі: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Оңтайлы желі режимі: тек NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Оңтайлы желі режимі: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Оңтайлы желі режимі: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Оңтайлы желі режимі: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Оңтайлы желі режимі: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Оңтайлы желі режимі: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Оңтайлы желі режимі: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Оңтайлы желі режимі: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Оңтайлы желі режимі: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Оңтайлы желі режимі: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Оңтайлы желі режимі: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Қоңырау"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Желі"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Жақсартылған 4G LTE режимі"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Бірнеше категориялы"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Бірнеше категория қосылған"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Бірнеше категория өшірілген"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ұсынылады)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ұсынылған)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4Г (ұсынылған)"</string>
     <string name="network_global" msgid="3289646154407617631">"Жаһандық"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Тұрақты теру нөмірін өшіруде…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Тұрақты теру нөмірі жойылды."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"ТТН жаңартылмады, себебі қате PIN код терілді."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN жаңартылмады, себебі нөмір 20 саннан аспауы тиіс."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Рұқсат нөмірлер жаңартылмады, себебі нөмір <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> саннан аспауы тиіс."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"ТТН жаңартылмады. PIN2 қате болды немесе телефон нөмірі қабылданбады."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Тұрақты теру нөмірлерінің жұмысы орындалмады."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM картасынан оқу…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Қоңырау шалу мүмкін емес. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> жедел нөмір емес."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Қоңырау шалу мүмкін емес. Жедел нөмірді теріңіз."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Төтенше жағдай қызметіне қоңырау шалу мүмкіндігі жоқ"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"PIN/PUK кодтарын осы құрылғының иесі ғана енгізе алады."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Полиция"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Жедел жәрдем"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Өрт қызметі"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Хабар жіберу функциясы бар қоңырау (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Дауыстық қоңырау кезінде хабар жіберу мүмкіндігін қосу"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT функциясы керең немесе есту не сөйлеу қабілеті төмен адамдарға көмек ретінде не дауысқа қосымша функциялар қажет болғанда қолданылады. <xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>Толығырақ ақпарат\n RTT қоңыраулары хабар транскрипциясы ретінде сақталады\nRTT функциясы бейне қоңыраулар үшін қолданылмайды"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Ескертпе: роумингте RTT мүмкіндігі қолжетімсіз"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Tелетайп өшірулі"</item>
     <item msgid="1449091874731375214">"Tелетайп толық функциялы"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Иә"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Жоқ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Бас тарту"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефон шұғыл кері қоңырау шалу режимінде"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> дейін"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Телефон <xliff:g id="COUNT_1">%s</xliff:g> минут бойы шұғыл кері қоңырау шалу режимінде болады.\nҚазір шыққыңыз келе ме?</item>
+      <item quantity="one">Телефон <xliff:g id="COUNT_0">%s</xliff:g> минут бойы шұғыл кері қоңырау шалу режимінде болады.\nҚазір шыққыңыз келе ме?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Қызмет"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Орнату"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Реттелген жоқ&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Қоңырау шектеу параметрлері өшірілді"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Кұпия сөзді өзгерту"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Қоңырау шектеу құпия сөзін өзгерту"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Қоңырау шектеу құпия сөзі өзгертілмеді"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Қоңырауды шектеу құпия сөзін өзгерту мүмкін емес."</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Құпия сөз сәйкес емес"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Құпия сөзде 4 сан болуы тиіс"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Құпия сөз өзгертілді"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Құпия сөзді растау"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Құпия сөзді енгізу"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Қоңырау шектеу параметрлері"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Қоңырау шектеу параметрлерінің барлығын өшіру қажет пе?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Желі бос емес. Кейінірек қайта қоңырау шалып көріңіз."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Желінің жүктемесі шамадан тыс. Көмек алу үшін операторыңызға хабарласыңыз."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Қоңырау басқа нөмірге жіберілді."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> пайдалану үшін SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> картасында мобильді интернеттің қосылғанына көз жеткізіңіз. Оны мобильдік желі параметрлерінен өзгертуге болады."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> пайдалану үшін SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> картасында мобильді интернет пен деректер роумингінің қосылғанына көз жеткізіңіз. Оны мобильдік желі параметрлерінен өзгертуге болады."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Жабу"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Деректер байланысын қосу"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Деректер байланысын өшіру"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE қарастырылған"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Бейнеқоңырау шалу қарастырылған"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi арқылы қоңырау шалу қарастырылған"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence қарастырылған"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS деректері"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS режимін іске қосу"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Құрылғыны қайта қосу қажет пе?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Бұл параметрді өзгерту үшін құрылғыны қайта қосу қажет."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Қайта қосу"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Өшіру"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Радиосигнал күші"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM мекенжай кітапшасын көру"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Рұқсат нөмірлерді көру"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Қызметтік теру нөмірлерін көру"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS қызметінің күйі"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS күйі"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Тіркелген"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Тіркелмеген"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Қолжетімді"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Қолжетімді емес"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS тіркеу: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE арқылы дауыстық қоңырау: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWiFi арқылы дауыстық қоңырау: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nБейнеқоңырау: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT интерфейсі: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Істеп тұр"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Істен шыққан"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Құтқару қызметіне ғана қоңырау шалынады"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Радио өшірулі"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роуминг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Роуминг істеп тұрған жоқ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Бос"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Шылдырлауда"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Қоңырау шалынуда"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Ажыратылған"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Қосылуда"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Жалғанған"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Уақытша тоқтатылған"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Белгісіз"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"байт"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Ағымдағы қосалқы идентификатор:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Әдепкі деректер SIM картасының қосалқы идентификаторы:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL өткізу мүмкіндігі (кбит/сек):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL өткізу мүмкіндігі (кбит/сек):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Ұялы желінің орналасқан жері туралы ақпарат (қолданыстан шығарылды):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE физикалық арна конфигурациясы:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Ұялы желі туралы ақпаратты жаңарту жиілігі:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Барлық ұялы желі өлшемдері туралы ақпарат:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Деректер қызметі:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роуминг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Қоңырауды басқа нөмірге бағыттау:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Қосылғаннан бергі PPP протоколын қайтару саны:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Ағымдағы желі:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Қабылданған деректер:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Дауыстық қызмет:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Сигнал күші:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Дауыстық қоңырау күйі:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Жіберілген деректер:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Хабар күтуде:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Телефон нөмірі:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Радио жолағын таңдау"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Дауыс желісінің түрі:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Деректер желісінің түрі:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Телефон индексін таңдау"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Қалаулы желі түрін реттеу:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping хост атауы (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping хоста атауы (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP клиентін тексеру:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ping тексеруін іске қосу"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Жаңарту"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Жаңарту"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS тексерісін қосу/өшіру"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Өндірушіге қатысты ақпарат/параметрлер"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Радиожолақ режимін орнату"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Жолақтар тізімі жүктелуде…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Орнату"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Сәтсіз"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Сәтті"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Планшет ақпараты"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Телефон ақпараты"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Операторды инициализациялау туралы ақпарат"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Операторды инциализациялауды іске қосу"</string>
 </resources>
diff --git a/res/values-km/config.xml b/res/values-km/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-km/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 04fc9f0..b58ca12 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"លេខ​ឯកជន"</string>
     <string name="payphone" msgid="7936735771836716941">"ទូរស័ព្ទសាធារណៈ"</string>
     <string name="onHold" msgid="6132725550015899006">"រង់ចាំ"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"សារ <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"សារ​ក្រុមហ៊ុន​សេវា​ទូរសព្ទ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"បាន​ចាប់ផ្ដើម​កូដ MMI"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"កូដ USSD កំពុង​ដំណើរការ…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"បាន​បោះបង់​កូដ MMI"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR តែ​ប៉ុណ្ណោះ"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"របៀប​បណ្ដាញ​ដែល​ចូលចិត្ត៖ WCDMA ដែល​ចូលចិត្ត"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"របៀប​បណ្ដាញ​ដែល​ចូលចិត្ត៖ តែ GSM ប៉ុណ្ណោះ"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"របៀប​បណ្ដាញ​ដែល​ចូលចិត្ត៖ LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"របៀប​បណ្ដាញ​ដែល​ចូលចិត្ត៖ GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"របៀប​បណ្ដាញ​ដែល​ចូលចិត្ត៖ CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"មុខងារ​បណ្ដាញ​អាទិភាព៖ LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"របៀប​បណ្ដាញ​ដែល​ចូលចិត្ត៖ សកល"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"របៀប​បណ្ដាញ​ដែល​ចូលចិត្ត៖ LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ប្រភេទបណ្តាញដែលពេញចិត្ត៖ LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"មុខងារ​បណ្ដាញ​ដែល​ប្រើ​ជា​អាទិភាព៖ LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"មុខងារ​បណ្ដាញ​ដែល​ប្រើ​ជា​អាទិភាព៖ TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"មុខងារ​បណ្ដាញ​ដែល​ប្រើ​ជា​អាទិភាព៖ LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR តែប៉ុណ្ណោះ"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"មុខងារ​បណ្ដាញអាទិភាព៖ NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"មុខងារបណ្ដាញ​អាទិភាព៖ NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"កំពុង​ហៅ"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"បណ្ដាញ"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"​របៀប 4G LTE ធ្វើឲ្យ​ប្រសើរ​ឡើង"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ប្រភេទ​ច្រើន"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"បាន​បើក​ប្រភេទ​ច្រើន"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"បាន​បិទ​ប្រភេទ​ច្រើន"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (បានណែនាំ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (បានណែនាំ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (បាន​ផ្ដល់​អនុសាសន៍)"</string>
     <string name="network_global" msgid="3289646154407617631">"សកល"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"កំពុង​លុប​លេខ​​ហៅ​ថេរ…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"បាន​លុប​លេខ​ហៅ​ថេរ។"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"មិន​បាន​ធ្វើ​បច្ចុប្បន្នភាព FDN ពី​ព្រោះ​អ្នក​បាន​វាយ​បញ្ចូល​កូដ PIN មិន​ត្រឹមត្រូវ។"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN មិន​ត្រូវ​បាន​ធ្វើ​បច្ចុប្បន្នភាព​ទេ ដោយ​សារ​លេខ​លើស​ពី 20 ខ្ទង់។"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN មិន​ត្រូវ​បាន​ធ្វើ​បច្ចុប្បន្នភាព​ទេ ដោយ​សារ​លេខ​លើស​ពី <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ខ្ទង់។"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"មិន​បាន​ធ្វើ​បច្ចុប្បន្នភាព។ កូដ PIN2 មិន​ត្រឹមត្រូវ ឬ​លេខ​ទូរស័ព្ទ​ត្រូវ​បាន​ច្រានចោល។"</string>
     <string name="fdn_failed" msgid="216592346853420250">"បាន​បរាជ័យ​ក្នុង​ការ​ប្រតិបត្តិការ FDN ។"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"កំពុង​អាន​ពី​ស៊ីមកាត…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"មិនអាចហៅបានទេ។ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> មិនមានជាលេខអាសន្នទេ។"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"មិនអាចហៅបានទេ។ ចុចហៅលេខអាសន្ន។"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"មិន​អាច​ហៅ​បន្ទាន់​បាន​ទេ"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"មាន​តែ​ម្ចាស់​ឧបករណ៍​ប៉ុណ្ណោះ ដែល​អាច​បញ្ចូល​កូដ PIN/PUK បាន។"</string>
     <string name="police_type_description" msgid="2819533883972081757">"ប៉ូលិស"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"រថយន្ត​សង្គ្រោះ​បន្ទាន់"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"អគ្គិភ័យ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"ការហៅ​តាម​សារ​ជា​អក្សរ​ក្នុង​ពេល​ជាក់ស្ដែង"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"អនុញ្ញាត​ការផ្ញើសារ​នៅ​ក្នុង​ការហៅ​ជា​សំឡេង"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT ជួយ​អ្នក​ហៅ​ទូរសព្ទ​ដែល​​ថ្លង់ ពិបាក​ក្នុង​ការស្ដាប់ មិន​អាច​និយាយ​បាន ឬ​​មាន​តម្រូវការ​ក្រៅ​ពី​សំឡេង។&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ស្វែងយល់​បន្ថែម&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - ការហៅ​ទូរសព្ទតាម RTT ត្រូវ​បាន​រក្សាទុក​ជា​ប្រតិចារឹក​សារ\n       &lt;br&gt; - RTT មិន​មានសម្រាប់ការហៅ​ជា​វីដេអូ​​ទេ"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ចំណាំ៖ RTT មិន​អាច​ប្រើ​បាន​ទេ ពេល​រ៉ូមីង"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"បិទ TTY"</item>
     <item msgid="1449091874731375214">"TTY ពេញ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"បាទ/ចាស"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"ទេ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"បោះបង់"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ទូរសព្ទ​ស្ថិត​ក្នុង​មុខងារ​ហៅ​ទៅ​វិញ​ពេល​មាន​អាសន្ន"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"រហូត​ដល់​ម៉ោង <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">ទូរសព្ទ​នឹង​ស្ថិត​ក្នុង​មុខងារ​ហៅ​ទៅ​វិញ​ពេល​មាន​អាសន្ន​រយៈ​ពេល <xliff:g id="COUNT_1">%s</xliff:g> នាទី។\nតើ​អ្នក​ចង់​ចេញ​ឥឡូវ​នេះ​ដែរ​ឬ​ទេ?</item>
+      <item quantity="one">ទូរសព្ទ​នឹង​ស្ថិត​ក្នុង​មុខងារ​ហៅ​ទៅ​វិញ​ពេល​មាន​អាសន្ន​រយៈ​ពេល <xliff:g id="COUNT_0">%s</xliff:g> នាទី។\nតើ​អ្នក​ចង់​ចេញ​ឥឡូវ​នេះ​ដែរ​ឬ​ទេ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"សេវា"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"រៀបចំ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt; មិន​កំណត់ &gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"បាន​បិទ​ដំណើរការ​នៃការរារាំង​​ការហៅ​ទូរសព្ទ"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"ប្ដូរ​ពាក្យ​សម្ងាត់"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"ប្ដូរ​ពាក្យ​សម្ងាត់​រារាំង​ការហៅ"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​រារាំង​ការហៅ​បាន​ទេ"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​ដែល​រារាំង​ការហៅ​ទូរសព្ទ​បាន​ទេ"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"ពាក្យ​សម្ងាត់​មិន​ដូច​គ្នា"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"បញ្ចូល​ពាក្យ​សម្ងាត់​​​មាន 4 លេខ"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"បានប្តូរពាក្យសម្ងាត់"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"បញ្ជាក់ពាក្យសម្ងាត់"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"បញ្ចូល​ពាក្យសម្ងាត់"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ការកំណត់​​ការរារាំង​ការហៅ​ទូរសព្ទ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"បិទ​ដំណើរការ​នៃការកំណត់​ការរារាំង​ការហៅ​​ទូរសព្ទទាំងអស់​ដែរ​​ទេ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"បណ្ដាញ​កំពុង​រវល់។ សូម​ព្យាយាម​​ការ​ហៅ​ទូរសព្ទ​របស់​អ្នក​ម្ដង​ទៀត​នៅ​ពេល​ក្រោយ។"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"បណ្ដាញ​មាន​ការកក​ស្ទះ។ ទាក់ទង​ទៅ​ប្រតិបត្តិករ​ឧបករណ៍​ចល័ត​របស់​អ្នក​សម្រាប់​ជំនួយ។"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"បាន​ហៅ​ទៅ​លេខ​ផ្សេង។"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"ដើម្បី​ប្រើប្រាស់ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> សូម​ប្រាកដថា​ទិន្នន័យទូរសព្ទ​​ចល័ត​ត្រូវ​បាន​បើក​សម្រាប់​ស៊ីម <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ។ អ្នក​អាចផ្លាស់​ប្ដូរ​​ជម្រើស​នេះ​​នៅ​ក្នុង​ការ​កំណត់​បណ្ដាញ​​ទូរសព្ទ​ចល័ត។"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"ដើម្បី​ប្រើប្រាស់ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> សូម​ប្រាកដថា​ទិន្នន័យ​ទូរសព្ទ​ចល័ត និង​ការ​រ៉ូមីង​ទិន្នន័យ​ត្រូវ​បាន​បើក​សម្រាប់​ស៊ីម <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ។ អ្នក​អាចផ្លាស់​ប្ដូរ​​ជម្រើស​ទាំង​នេះ​នៅ​ក្នុង​ការ​កំណត់​បណ្ដាញ​​ទូរសព្ទ​ចល័ត។"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"បដិសេធ"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"បើក​ការតភ្ជាប់ទិន្នន័យ"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"បិទការតភ្ជាប់ទិន្នន័យ"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"បានផ្តល់ VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"បានផ្តល់​ការហៅជាវីដេអូ"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"បាន​ផ្តល់​ការហៅ​ទូរសព្ទ​តាម Wifi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"បាន​ផ្តល់ជូន EAB/Presence"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"ទិន្នន័យ Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"បើក DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ចាប់ផ្តើមឧបករណ៍ឡើងវិញ​ឬ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"អ្នក​ត្រូវ​ចាប់ផ្ដើម​ឧបករណ៍​របស់អ្នកឡើងវិញ ដើម្បី​ផ្លាស់ប្ដូរ​ការកំណត់​នេះ។"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ចាប់ផ្ដើមឡើងវិញ"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"បោះបង់"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"ថាមពល​វិទ្យុ​ទូរសព្ទ​ចល័ត"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"មើលសៀវភៅអាសយដ្ឋានក្នុងស៊ីមកាត"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"មើល​លេខ​ហៅ​ថេរ"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"មើល​លេខ​ហៅ​សេវាកម្ម"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"សា្ថនភាពសេវាកម្ម IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"ស្ថានភាព IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"បានចុះឈ្មោះ"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"មិន​បាន​ចុះឈ្មោះ"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ទំនេរ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"មិន​ទំនេរ"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"ការចុះឈ្មោះ IMS៖ <xliff:g id="STATUS">%1$s</xliff:g>\nការហៅ​ជា​សំឡេង​តាម LTE៖ <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nការហៅ​ជា​សំឡេង​តាម WiFi៖ <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nការហៅជាវីដេអូ៖ <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nផ្ទៃ UT ៖ <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"កំពុង​ដំណើរការ"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"មិនដំណើរការ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"សម្រាប់​តែ​ការហៅទៅលេខសង្គ្រោះបន្ទាន់​ប៉ុណ្ណោះ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"វិទ្យុ​បាន​បិទ"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"រ៉ូមីង"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"មិនរ៉ូមីងទេ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"អសកម្ម"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"កំពុងរោទ៍"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"ការហៅ​ទូរសព្ទ​កំពុងដំណើរការ"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"បាន​ផ្ដាច់"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"កំពុងភ្ជាប់"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"បានភ្ជាប់"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"បាន​ផ្អាក"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"មិន​ស្គាល់"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"បៃ"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"លេខសម្គាល់រង​បច្ចុប្បន្ន៖"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"លេខសម្គាល់រង​របស់​ស៊ីម​ទិន្នន័យ​លំនាំដើម៖"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"កម្រិត​បញ្ជូន DL (kbps) ៖"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"កម្រិត​បញ្ជូន UL (kbps) ៖"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ព័ត៌មាន​ទីតាំង​ទូរសព្ទ​ចល័ត (បានបញ្ឈប់)៖"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"ការកំណត់​រចនាសម្ព័ន្ធបណ្ដាញរូបវ័ន្ត LTE ៖"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"អត្រា​ផ្ទុក​ឡើង​វិញ​នៃ​ព័ត៌មាន​ទូរសព្ទ​ចល័ត៖"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ព័ត៌មាន​វាស់​ទូរសព្ទ​ចល័ត​ទាំងអស់៖"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"សេវាកម្មទិន្នន័យ៖"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"រ៉ូមីង៖"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI ៖"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"បញ្ជូនការហៅ​ទូរសព្ទ​បន្ត៖"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ចំនួននៃការកំណត់ PPP ឡើងវិញតាំងពីពេលចាប់ផ្ដើម៖"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"បណ្ដាញបច្ចុប្បន្ន៖"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"បានទទួលទិន្នន័យ៖"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"សេវាកម្មសំឡេង៖"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"កម្លាំងរលកសញ្ញា៖"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ស្ថានភាព​ការហៅ​ជា​សំឡេង៖"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"បានផ្ញើទិន្នន័យ៖"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"រង់ចាំសារ៖"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"លេខទូរសព្ទ៖"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ជ្រើសរើស​កម្រិត​បញ្ជូន​វិទ្យុ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ប្រភេទបណ្តាញសំឡេង៖"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ប្រភេទបណ្តាញទិន្នន័យ៖"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ជ្រើសរើស​សន្ទស្សន៍​ទូរសព្ទ"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"កំណត់ប្រភេទបណ្ដាញដែលពេញចិត្ត៖"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ភីង​ឈ្មោះ​ម៉ាស៊ីន (www.google.com) IPv4 ៖"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ភីង​ឈ្មោះ​ម៉ាស៊ីន (www.google.com) IPv6 ៖"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"តេស្ត​កម្មវិធី​ភ្ញៀវ HTTP ៖"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ដំណើរការ​តេស្ត​ភីង"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC ៖"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"ធ្វើ​បច្ចុប្បន្នភាព"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ផ្ទុកឡើងវិញ"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"បិទ/បើកការពិនិត្យ DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"ការ​កំណត់/ព័ត៌មាន​ជាក់លាក់ OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"កំណត់​មុខងារ​កម្រិត​បញ្ជូន​វិទ្យុ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"កំពុងដំណើរការបញ្ជីក្រុម…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"កំណត់"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"មិនបាន​សម្រេច"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"ជោគជ័យ"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ព័ត៌មាន​ថេប្លេត"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ព័ត៌មាន​ទូរសព្ទ"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ព័ត៌មាន​អំពី​ការផ្តល់​ទិន្នន័យ​របស់​ក្រុមហ៊ុន​សេវា​ទូរសព្ទ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"នាំ​ឱ្យ​មាន​ការផ្តល់​ទិន្នន័យ​ពី​ក្រុមហ៊ុន​សេវា​ទូរសព្ទ"</string>
 </resources>
diff --git a/res/values-kn/config.xml b/res/values-kn/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-kn/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 6ef1eeb..7ce2594 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ಖಾಸಗಿ ಸಂಖ್ಯೆ"</string>
     <string name="payphone" msgid="7936735771836716941">"ಪೇಫೋನ್"</string>
     <string name="onHold" msgid="6132725550015899006">"ತಡೆಹಿಡಿಯಲಾಗಿದೆ"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> ಸಂದೇಶ"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"ವಾಹಕದ ಸಂದೇಶ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI ಕೋಡ್‌ ಪ್ರಾರಂಭಿಸಲಾಗಿದೆ"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD ಕೋಡ್‌ ಚಾಲನೆಯಲ್ಲಿದೆ…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI ಕೋಡ್‌ ರದ್ದು ಮಾಡಲಾಗಿದೆ"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR ಮಾತ್ರ"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌: WCDMA ಗೆ ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಲಾಗಿದೆ"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌‌: GSM ಮಾತ್ರ"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌: ಜಾಗತಿಕ"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌‌: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌‌: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌‌: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌‌: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR ಮಾತ್ರ"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"ಕರೆಮಾಡಲಾಗುತ್ತಿದೆ"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ನೆಟ್‌ವರ್ಕ್"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"ವರ್ಧಿಸಲಾದ 4G LTE ಮೋಡ್"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ಬಹು-ವರ್ಗ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"ಬಹು ವರ್ಗವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ಬಹು ವರ್ಗವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
     <string name="network_global" msgid="3289646154407617631">"ಜಾಗತಿಕ"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ಸ್ಥಿರ ಡಯಲಿಂಗ್‌‌ ಸಂಖ್ಯೆಯನ್ನು ಅಳಿಸಲಾಗುತ್ತಿದೆ…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ಸ್ಥಿರ ಡಯಲಿಂಗ್ ಸಂಖ್ಯೆಯನ್ನು ಅಳಿಸಲಾಗಿದೆ."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"ನೀವು ತಪ್ಪಾದ ಪಿನ್‌ ಟೈಪ್‌ ಮಾಡಿರುವ ಕಾರಣ ಎಫ್‌ಡಿಎನ್‌ ಅನ್ನು ನವೀಕರಿಸಲಾಗಲಿಲ್ಲ."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"ಸಂಖ್ಯೆಯು 20 ಅಂಕೆಗಳನ್ನು ಮೀರಿರುವುದರಿಂದ FDN ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗಿಲ್ಲ."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"ಸಂಖ್ಯೆಯು <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ಅಂಕಿಗಳನ್ನು ಮೀರುತ್ತಿರುವ ಕಾರಣ FDN ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗಲಿಲ್ಲ."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"ಎಫ್‌ಡಿಎನ್‌ ಅನ್ನು ನವೀಕರಿಸಲಾಗಲಿಲ್ಲ. PIN2 ತಪ್ಪಾಗಿದೆ ಅಥವಾ ಫೋನ್ ಸಂಖ್ಯೆಯನ್ನು ತಿರಸ್ಕರಿಸಲಾಗಿದೆ."</string>
     <string name="fdn_failed" msgid="216592346853420250">"ಎಫ್‌ಡಿಎನ್‌ ಕಾರ್ಯಾಚರಣೆ ವಿಫಲವಾಗಿದೆ."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"ಸಿಮ್‌ ಕಾರ್ಡ್‌ನಿಂದ ಓದಲಾಗುತ್ತಿದೆ…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ಇದು ತುರ್ತು ಸಂಖ್ಯೆಯಲ್ಲ."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ತುರ್ತು ಸಂಖ್ಯೆಯನ್ನು ಡಯಲ್ ಮಾಡಿ."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"ತುರ್ತು ಕರೆ ಮಾಡುವಿಕೆ ಲಭ್ಯವಿಲ್ಲ"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"ಸಾಧನದ ಮಾಲೀಕರು ಮಾತ್ರ PIN/PUK ಕೋಡ್‌ಗಳನ್ನು ನಮೂದಿಸಬಹುದು."</string>
     <string name="police_type_description" msgid="2819533883972081757">"ಪೊಲೀಸ್"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ಆಂಬುಲೆನ್ಸ್"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"ಬೆಂಕಿ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"ನೈಜ-ಸಮಯ ಪಠ್ಯ (RTT) ಕರೆ"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"ಧ್ವನಿ ಕರೆಯ ಒಳಗೆ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆಗೆ ಅನುಮತಿಸಿ"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"ಕಿವುಡರು, ಆಲಿಸುವಿಕೆಯ ದೋಷಗಳನ್ನು ಹೊಂದಿದವರು, ಮಾತನಾಡುವಿಕೆಯಲ್ಲಿ ದೋಷಗಳನ್ನು ಹೊಂದಿದವರು ಅಥವಾ ಧ್ವನಿ ಮೀರಿ ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಕರೆ ಮಾಡಲು ಕಠಿಣರಾಗಿರುವವರಿಗೆ RTT ಮೋಡ್ ಸಹಾಯ ಮಾಡುತ್ತದೆ.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ&lt;/a&gt;\n   &lt;br&gt;&lt;br&gt; - RTT ಕರೆಗಳನ್ನು ಸಂದೇಶ ಪ್ರತಿಲಿಪಿಗಳಂತೆ ಉಳಿಸಲಾಗಿದೆ \n    &lt;br&gt; - ವೀಡಿಯೊ ಕರೆಗಳಿಗೆ RTT ಲಭ್ಯವಿಲ್ಲ"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ಗಮನಿಸಿ: ರೋಮಿಂಗ್‌ನಲ್ಲಿ RTT ಲಭ್ಯವಿಲ್ಲ"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ಆಫ್"</item>
     <item msgid="1449091874731375214">"TTY ಪೂರ್ಣ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ಹೌದು"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"ಇಲ್ಲ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"ವಜಾಗೊಳಿಸಿ"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ಫೋನ್‌‌, ತುರ್ತು ಕಾಲ್‌ಬ್ಯಾಕ್ ಮೋಡ್‌ನಲ್ಲಿದೆ"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> ವರೆಗೆ"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">ಫೋನ್‌‌ <xliff:g id="COUNT_1">%s</xliff:g> ನಿಮಿಷಗಳವರೆಗೆ ತುರ್ತು ಕಾಲ್‌ಬ್ಯಾಕ್ ಮೋಡ್‌ನಲ್ಲಿರುತ್ತದೆ.\n ನೀವು ಈಗಲೇ ನಿರ್ಗಮಿಸಲು ಬಯಸುತ್ತೀರಾ?</item>
+      <item quantity="other">ಫೋನ್‌‌ <xliff:g id="COUNT_1">%s</xliff:g> ನಿಮಿಷಗಳವರೆಗೆ ತುರ್ತು ಕಾಲ್‌ಬ್ಯಾಕ್ ಮೋಡ್‌ನಲ್ಲಿರುತ್ತದೆ.\n ನೀವು ಈಗಲೇ ನಿರ್ಗಮಿಸಲು ಬಯಸುತ್ತೀರಾ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"ಸೇವೆ"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"ಸೆಟಪ್"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;ಹೊಂದಿಸಿಲ್ಲ&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"ಪಾಸ್‌ವರ್ಡ್ ಬದಲಿಸಿ"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಿ"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 ಸಂಖ್ಯೆಯ ಪಾಸ್‌ವರ್ಡ್‌ ನಮೂದಿಸಿ"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"ಪಾಸ್‌ವರ್ಡ್ ಬದಲಾವಣೆಯಾಗಿದೆ"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"ಪಾಸ್‌ವರ್ಡ್‌ ದೃಢೀಕರಿಸಿ"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"ಎಲ್ಲಾ ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದೇ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ನೆಟ್‌ವರ್ಕ್ ಕಾರ್ಯನಿರತವಾಗಿದೆ ನಿಮ್ಮ ಕರೆಯನ್ನು ಪುನಃ ನಂತರ ಪ್ರಯತ್ನಿಸಿ"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ನೆಟ್‌ವರ್ಕ್ ದಟ್ಟಣೆಯಿದೆ. ಸಹಾಯಕ್ಕಾಗಿ ನಿಮ್ಮ ಮೊಬೈಲ್ ಆಪರೇಟರ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"ಕರೆ ಫಾರ್ವರ್ಡ್ ಮಾಡಲಾಗಿದೆ."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ಅನ್ನು ಬಳಸಲು, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ಸಿಮ್‌ಗಾಗಿ ಮೊಬೈಲ್ ಡೇಟಾ ಆನ್‌ ಆಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನೀವು ಇದನ್ನು ಮೊಬೈಲ್‌ ನೆಟ್‌ವರ್ಕ್‌ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ಅನ್ನು ಬಳಸಲು, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ಸಿಮ್ ಗಾಗಿ ಮೊಬೈಲ್ ಡೇಟಾ ಮತ್ತು ಡೇಟಾ ರೋಮಿಂಗ್ ಆನ್‌ ಆಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನೀವು ಇದನ್ನು ಮೊಬೈಲ್‌ ನೆಟ್‌ವರ್ಕ್‌ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"ವಜಾಗೊಳಿಸಿ"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ಡೇಟಾ ಸಂಪರ್ಕ ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ಡೇಟಾ ಸಂಪರ್ಕ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ಕಲ್ಪಿಸಲಾಗಿದೆ"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ವೀಡಿಯೊ ಕರೆ ಸೌಲಭ್ಯ ಕಲ್ಪಿಸಲಾಗಿದೆ"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"ವೈಫೈ ಕರೆ ಸೌಲಭ್ಯ ಕಲ್ಪಿಸಲಾಗಿದೆ"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/ಪ್ರಸ್ತುತ ಸಿದ್ಧವಾಗಿದೆ"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ಡೇಟಾ"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೆ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ನೀವು ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ಮರುಪ್ರಾರಂಭಿಸಿ"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ರದ್ದುಮಾಡಿ"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"ಮೊಬೈಲ್ ರೇಡಿಯೋ ಪವರ್"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ಸಿಮ್ ವಿಳಾಸ ಪುಸ್ತಕವನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ಸ್ಥಿರ ಡಯಲಿಂಗ್ ಸಂಖ್ಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ಸೇವಾ ಡಯಲಿಂಗ್ ಸಂಖ್ಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS ಸೇವೆ ಸ್ಥಿತಿ"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS ಸ್ಥಿತಿ"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ನೋಂದಾಯಿಸಲಾಗಿದೆ"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"ನೋಂದಣಿಯಾಗಿಲ್ಲ"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ಲಭ್ಯವಿದೆ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ಲಭ್ಯವಿಲ್ಲ"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS ನೋಂದಣಿ: <xliff:g id="STATUS">%1$s</xliff:g>\nವಾಯ್ಸ್ ಓವರ್ LTE:<xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nವಾಯ್ಸ್ ಓವರ್ ವೈ-ಫೈ: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nವೀಡಿಯೊ ಕರೆ ಮಾಡುವಿಕೆ: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ಇಂಟರ್ಫೇಸ್: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"ಸೇವೆಯಲ್ಲಿದೆ"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"ಸೇವೆಯಲ್ಲಿಲ್ಲ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"ತುರ್ತು ಕರೆಗಳು ಮಾತ್ರ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ರೇಡಿಯೋ ಆಫ್ ಮಾಡಿ"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ರೋಮಿಂಗ್"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ರೋಮಿಂಗ್‌ನಲ್ಲಿ ಇಲ್ಲ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"ತಟಸ್ಥ"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"ರಿಂಗ್‌ ಆಗುತ್ತಿದೆ"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"ಕರೆ ಪ್ರಗತಿಯಲ್ಲಿದೆ"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ಸಂಪರ್ಕ ಕಡಿತಗೊಂಡಿದೆ"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"ಕನೆಕ್ಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"ಅಮಾನತುಗೊಳಿಸಲಾಗಿದೆ"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"ಅಪರಿಚಿತ"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ಬೈಟ್‌ಗಳು"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ಪ್ರಸ್ತುತ ವಿಷಯಐಡಿ:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ಡೀಫಾಲ್ಟ್ ಡೇಟಾ ಸಿಮ್‌ನ ವಿಷಯಐಡಿ:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ಬ್ಯಾಂಡ್‌ವಿಡ್ತ್ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL ಬ್ಯಾಂಡ್‌ವಿಡ್ತ್ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ಸೆಲ್ ಸ್ಥಳ ಮಾಹಿತಿ (ತಡೆಹಿಡಿಯಲಾಗಿದೆ):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ಭೌತಿಕ ಚಾನೆಲ್ ಕಾನ್ಫಿಗರೇಶನ್:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ಸೆಲ್ ಮಾಹಿತಿ ರಿಫ್ರೆಶ್ ದರ:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ಎಲ್ಲಾ ಸೆಲ್ ಮಾಪನ ಮಾಹಿತಿ:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ಡೇಟಾ ಸೇವೆ:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ರೋಮಿಂಗ್:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ಕರೆ ಮರುನಿರ್ದೇಶನ:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ಬೂಟ್ ಆದಾಗಿನಿಂದ PPP ಮರುಹೊಂದಿಕೆಯ ಸಂಖ್ಯೆ:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"ಪ್ರಸ್ತುತ ನೆಟ್‌ವರ್ಕ್‌:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ಡೇಟಾ ಸ್ವೀಕರಿಸಲಾಗಿದೆ:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ಧ್ವನಿ ಸೇವೆ:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"ಸಿಗ್ನಲ್ ಸಾಮರ್ಥ್ಯ:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ಧ್ವನಿ ಕರೆ ಸ್ಥಿತಿ:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ಡೇಟಾ ಕಳುಹಿಸಲಾಗಿದೆ:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"ಸಂದೇಶ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ಫೋನ್ ಸಂಖ್ಯೆ:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ರೇಡಿಯೋ ಬ್ಯಾಂಡ್ ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ಧ್ವನಿ ನೆಟ್‌ವರ್ಕ್‌ ಪ್ರಕಾರ:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ಡೇಟಾ ನೆಟ್‌ವರ್ಕ್ ಪ್ರಕಾರ:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ಫೋನ್ ಸೂಚಿಕೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್‌ ಪ್ರಕಾರವನ್ನು ಹೊಂದಿಸಿ:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ಹೋಸ್ಟ್‌ ಹೆಸರನ್ನು ಪಿಂಗ್ ಮಾಡಿ(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ಹೋಸ್ಟ್‌ ಹೆಸರನ್ನು ಪಿಂಗ್ ಮಾಡಿ(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP ಕ್ಲೈಂಟ್ ಪರೀಕ್ಷೆ:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ಪಿಂಗ್ ಪರೀಕ್ಷೆಯನ್ನು ರನ್ ಮಾಡಿ"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"ಅಪ್‌ಡೇಟ್ ಮಾಡಿ"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ರಿಫ್ರೆಶ್ ಮಾಡಿ"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS ಪರಿಶೀಲನೆ ಟಾಗಲ್ ಮಾಡಿ"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-ನಿರ್ದಿಷ್ಟ ಮಾಹಿತಿ/ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ರೇಡಿಯೋ ಬ್ಯಾಂಡ್ ಮೋಡ್ ಹೊಂದಿಸಿ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ಬ್ಯಾಂಡ್ ಪಟ್ಟಿಯನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"ಹೊಂದಿಸಿ"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ವಿಫಲಗೊಂಡಿದೆ"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"ಯಶಸ್ವಿಯಾಗಿದೆ"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ಟ್ಯಾಬ್ಲೆಟ್ ಮಾಹಿತಿ"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ಫೋನ್ ಮಾಹಿತಿ"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ವಾಹಕ ಪೂರೈಕೆಯ ಮಾಹಿತಿ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ಟ್ರಿಗರ್‌ ವಾಹಕ ಪೂರೈಕೆ"</string>
 </resources>
diff --git a/res/values-ko/config.xml b/res/values-ko/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ko/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index a0ad341..c68ffa4 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"비공개 번호"</string>
     <string name="payphone" msgid="7936735771836716941">"공중전화"</string>
     <string name="onHold" msgid="6132725550015899006">"대기 중"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> 메시지"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"이동통신사 메시지"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI 코드 시작됨"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD 코드 실행 중..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI 코드 취소됨"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR 전용"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"기본 네트워크 모드: WCDMA 선호"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"기본 네트워크 모드: GSM 전용"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"기본 네트워크 모드: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"기본 네트워크 모드: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"기본 네트워크 모드: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"기본 네트워크 모드: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"기본 네트워크 모드: 글로벌"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"기본 네트워크 모드: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"기본 네트워크 모드: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"기본 네트워크 모드: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"기본 네트워크 모드: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"기본 네트워크 모드: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"기본 네트워크 모드: NR 전용"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"기본 네트워크 모드: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"기본 네트워크 모드: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"기본 네트워크 모드: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"기본 네트워크 모드: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"기본 네트워크 모드: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"기본 네트워크 모드: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"기본 네트워크 모드: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"기본 네트워크 모드: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"기본 네트워크 모드: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"기본 네트워크 모드: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"통화"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"네트워크"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"향상된 4G LTE 모드"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"다중 카테고리"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"다중 카테고리 사용"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"다중 카테고리 사용 중지"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (권장)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE(권장)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G(권장)"</string>
     <string name="network_global" msgid="3289646154407617631">"전체"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"발신 허용 번호를 삭제하는 중..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"발신 허용 번호가 삭제되었습니다."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"잘못된 PIN을 입력하여 FDN 업데이트 안됨"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"숫자가 20자리를 초과하여 FDN을 업데이트하지 못했습니다."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"숫자가 <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>자리를 초과하여 FDN을 업데이트하지 못했습니다."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN이 업데이트되지 않았습니다. PIN2가 잘못되었거나 전화번호가 거부되었습니다."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN 작업이 실패했습니다."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM 카드에서 읽는 중..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"전화를 걸 수 없습니다. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g>은(는) 긴급 번호가 아닙니다."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"전화를 걸 수 없습니다. 긴급 번호를 사용하세요."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"긴급 전화를 사용할 수 없음"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"기기 소유자만 PIN/PUK 코드를 입력할 수 있습니다."</string>
     <string name="police_type_description" msgid="2819533883972081757">"경찰서"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"구급차"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"화재"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"실시간 문자 메시지(RTT) 통화"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"음성 통화 중 메시지 허용"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT는 청각 장애, 난청, 언어 장애가 있거나 음성 이외의 의사소통 수단이 필요한 발신자에게 도움이 됩니다.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;자세히 알아보기&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT 통화는 메시지 스크립트로 저장됩니다.\n       &lt;br&gt; - 화상 통화에서는 RTT를 사용할 수 없습니다."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"참고: 로밍 중에는 RTT를 사용할 수 없습니다."</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY 사용 안함"</item>
     <item msgid="1449091874731375214">"TTY 전체"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"예"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"아니요"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"해제"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"휴대전화가 긴급 콜백 모드입니다."</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g>까지"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">휴대전화가 <xliff:g id="COUNT_1">%s</xliff:g>분간 긴급 콜백 모드로 유지됩니다.\n지금 종료하시겠습니까?</item>
+      <item quantity="one">휴대전화가 <xliff:g id="COUNT_0">%s</xliff:g>분간 긴급 콜백 모드로 유지됩니다.\n지금 종료하시겠습니까?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"서비스"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"설정"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;설정 안됨&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"착발신 제한 비활성화됨"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"비밀번호 변경"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"착발신 제한 비밀번호 변경"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"착발신 제한 비밀번호를 변경할 수 없습니다."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"착발신 제한 비밀번호를 변경할 수 없습니다."</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"비밀번호가 일치하지 않습니다."</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4자리 숫자로 비밀번호를 입력하세요."</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"비밀번호 변경됨"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"비밀번호 확인"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"비밀번호 입력"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"착발신 제한 설정"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"모든 착발신 제한 설정을 비활성화하시겠습니까?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"네트워크 사용량이 많습니다. 나중에 다시 전화해 주세요."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"네트워크 사용량이 많습니다. 이동통신사에 지원을 요청해 보세요."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"통화가 착신전환되었습니다."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>을(를) 사용하려면 SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>에 모바일 데이터가 사용 설정되어 있는지 확인하세요. 이 설정은 모바일 네트워크 설정에서 변경할 수 있습니다."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>을(를) 사용하려면 SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>에 모바일 데이터 및 데이터 로밍이 사용 설정되어 있는지 확인하세요. 이 설정은 모바일 네트워크 설정에서 변경할 수 있습니다."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"닫기"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"데이터 연결 사용"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"데이터 연결 사용 안함"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE 프로비저닝됨"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"화상 통화 프로비저닝됨"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi 통화 프로비저닝됨"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/상태 프로비저닝됨"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS 데이터"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS 사용 설정"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"기기 다시 시작"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"설정을 변경하려면 기기를 다시 시작해야 합니다."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"다시 시작"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"취소"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"모바일 무선 전력"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM 주소록 보기"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"발신 허용 번호 보기"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"SDN(Service Dialing Numbers) 보기"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS 서비스 상태"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS 상태"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"등록됨"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"등록 안됨"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"사용 가능"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"사용할 수 없음"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS 등록: <xliff:g id="STATUS">%1$s</xliff:g>\nVoLTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoWi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\n화상 통화: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT 인터페이스: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"서비스 중"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"서비스 지역 벗어남"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"긴급 통화만 허용"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"무선 연결 끊김"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"로밍"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"로밍 안함"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"없음"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"전화 수신 중"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"통화 진행 중"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"연결 끊김"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"연결 중"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"연결됨"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"정지됨"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"알 수 없음"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"패킷"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"바이트"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"현재 subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"기본 데이터 SIM의 subId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL 대역폭(kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL 대역폭(kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"셀 위치 정보(사용 중단됨):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE 물리적 채널 구성:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"셀 정보 새로고침 빈도:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"모든 셀 측정 정보:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"데이터 서비스:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"로밍:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"통화 리디렉션:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"부팅 후 PPP 재설정 횟수:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"현재 네트워크:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"받은 데이터:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"음성 서비스:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"신호 강도:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"음성 통화 상태:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"보낸 데이터:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"메시지 대기 중:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"전화번호:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"무선 주파수 대역 선택"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"음성 네트워크 유형:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"데이터 네트워크 유형:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"휴대전화 색인 선택"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"기본 네트워크 유형 설정:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"핑 호스트 이름(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"핑 호스트 이름(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP 클라이언트 테스트:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"핑 테스트 실행"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"업데이트"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"새로고침"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS 확인 전환"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM별 정보/설정"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"무선 주파수 대역 모드 설정"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"대역 목록 로드 중…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"설정"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"실패"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"성공"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"태블릿 정보"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"휴대전화 정보"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"이동통신사 프로비저닝 정보"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"이동통신사 프로비저닝 실행"</string>
 </resources>
diff --git a/res/values-ky/config.xml b/res/values-ky/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ky/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index de83ce6..fb600d9 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Купуя номер"</string>
     <string name="payphone" msgid="7936735771836716941">"Таксофон"</string>
     <string name="onHold" msgid="6132725550015899006">"Күтүлүүдө"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Билдирүү"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Байланыш операторунун билдирүүсү"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI код иштетилди"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD коду иштеп жатат…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI код жокко чыгарылды"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR гана"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Тандалган тармак режими: WCDMA тандалган"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Тандалган тармак режими: GSM гана"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Артыкчылыктуу желе тартиби: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Артыкчылыктуу желе тартиби: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Артыкчылыктуу желе тартиби: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Тандалган тармак режими: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Тандалган тармак режими: Дүйнө жүзү"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Артыкчылыктуу желе тартиби: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Жаккан режим: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Тандалган тармак режими: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Тандалган тармак режими: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Тандалган тармак режими: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Тандалган тармак режими: NR only"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Тандалган тармак режими: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Тандалган тармак режими: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Тандалган тармак режими: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Тандалган тармак режими: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Тандалган тармак режими: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Тандалган тармак режими: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Тандалган тармак режими: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Тандалган тармак режими: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Тандалган тармак режими: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Тандалган тармак режими: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Чалуулар"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Тармак"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Жакшыртылган 4G LTE режими"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Мульти-категория"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Мульти-категория иштетилген"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Мульти-категория өчүрүлгөн"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (сунушталган)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (сунушталат)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (сунушталат)"</string>
     <string name="network_global" msgid="3289646154407617631">"Дүйнө жүзү"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Туруктуу терүү номери жок кылынууда…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Туруктуу терүү номери өчүрүлдү."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"БНТ жаңыртылган жок, анткени туура эмес PIN-код киргизилди."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Уруксат берилген номер жаңыртылган жок, себеби жазылган номердин саны 20дан ашпашы керек."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Уруксат берилген номер жаңыртылган жок, себеби жазылган номердин саны <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ашпашы керек."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"БНТ жаңыртылган жок. PIN2 туура эмес, же телефон номуру жараксыз."</string>
     <string name="fdn_failed" msgid="216592346853420250">"БНТ иши кыйрады."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM-картадан окулууда…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Чалынбай жатат. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> өзгөчө кырдаал номери эмес."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Чалынбай жатат. Өзгөчө кырдаалдар кызматынын номерин териңиз."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Шашылыш чалуу жеткиликсиз"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Түзмөктүн ээси гана PIN/PUK коддорун киргизе алат."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Полиция"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Тез жардам машинасы"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Өрт"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Чалуу учурунда анык убакыттагы билдирүү (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Үн чалуунун учурунда жазышууга уруксат берүү"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT функциясы угуу жана сүйлөө жөндөмдүүлүгү бузулган адамдарга арналат.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Кеңири маалымат&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT функциясында чалуулар транскрипциялар катары сакталат\n       &lt;br&gt; - RTT функациясы видео чалууда жеткиликсиз болот"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Эскертүү: Роуминг учурунда RTT жеткиликсиз"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Телетайп түзмөгү өчүк"</item>
     <item msgid="1449091874731375214">"Телетайп түзмөгү толуп калды"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ооба"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Жок"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Этибарга албоо"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефон шашылыш кайра чалуу режиминде"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> чейин"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Телефон шашылыш кайра чалуу режиминде <xliff:g id="COUNT_1">%s</xliff:g> мүнөт бою болот.\nАзыр чыгып кетесизби?</item>
+      <item quantity="one">Телефон шашылыш кайра чалуу режиминде <xliff:g id="COUNT_0">%s</xliff:g> мүнөт бою болот.\nАзыр чыгып кетесизби?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Кызмат"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Жөндөө"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Коюлган эмес&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Чалууларга тыюу салуу функциясы өчүрүлдү"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Сызсөздү өзгөртүү"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Чалууларга тыюу салуу функциясынын сырсөзүн өзгөртүү"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Чалууларга тыюу салуу функциясынын сырсөзү өзгөртүлбөй койду"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Чалууларга тыюу салуу сырсөзү өзгөртүлбөй койду"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Сырсөздөр дал келбейт"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 сандан турагн сырсөздү киргизиңиз"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Сырсөз өзгөртүлдү"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Сырсөздү ырастоо"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Сырсөздү киргизиңиз"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Чалууларга тыюу салуу функциясынын жөндөөлөрү"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Чалууларга тыюу салуу функциясынын жөндөөлөрү өчүрүлсүнбү?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Тармак бош эмес. Кийинчерээк кайра чалыңыз."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Тармак ашыкча жүктөлгөн. Жардам алуу үчүн мобилдик операторуңуз менен байланышыңыз."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Чалуу кабыл алынган жок."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> колдонуу үчүн <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM-картасында мобилдик Интернет күйгүзүлгөнүн текшериңиз. Муну мобилдик тармак жөндөөлөрүнөн өзгөртсөңүз болот."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> колдонуу үчүн <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM-картасында мобилдик Интернет жана Интернет-роуминг күйгүзүлгөнүн текшериңиз. Муну мобилдик тармак жөндөөлөрүнөн өзгөртсөңүз болот."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Жабуу"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Мобилдик туташууну иштетүү"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Мобилдик туташууну өчүрүү"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE камсыздалган"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Видео чалуу камсыздалган"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi аркылуу чалуу камсыздалган"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Катышуу камсыздалган"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Жарандык радио кызматынын дайындары"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS\'ти иштетүү"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Түзмөк өчүп күйсүнбү?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Бул жөндөөнү өзгөртүү үчүн түзмөгүңүздү өчүрүп күйгүзүңүз."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Өчүрүп-күйгүзүү"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Жокко чыгаруу"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Мобилдик радионун кубаты"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM картадагы дарек китепчесин көрүү"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Туруктуу терүү номерлерин көрүү"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Кызматтык терүү номерлерин көрүү"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS кызматынын абалы"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS абалы"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Катталды"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Катталган эмес"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Жеткиликтүү"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Жеткиликсиз"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS каттоосу: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE аркылуу аудио чалуу: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWiFi аркылуу аудио чалуу: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВидео чалуу: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT интерфейс: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Тейлөө аймагында"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Тейлөө аймагынын сыртында"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Кырсыктаганда гана чалууга болот"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Радио өчүк"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роуминг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Роумингде эмес"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Күтүү режиминде"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Шыңгыроодо"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Чалуу аткарылууда"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Ажыратылган"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Туташууда"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Туташты"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Убактылуу токтотулду"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Белгисиз"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"байттар"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Учурдагы көз салуу идентификатору:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Демейки оператордун SIM картасынын көз салуу идентификатору:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL өткөрүү жөндөмдүүлүгү (кб/сек.):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL өткөрүү жөндөмдүүлүгү (кб/сек.):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Уюлдук тармакта жайгашкан жери тууралуу маалымат (жоюлган):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE физикалык каналынын конфигурациясы:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Уюлдук маалыматты жаңылоо ылдамдыгы:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Уюлдук чен-өлчөм маалыматтары:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Мобилдик туташуу кызматы:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роуминг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Чалуу багытын буруу:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Күйгүзгөндөн бери баштапкы абалга келтирилген PPP саны:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Учурдагы тармак:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Дайындар алынды:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Үн кызматы:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Сигналдын күчү:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Үн менен чалуунун абалы:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Дайындар жөнөтүлдү:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Күтүүдөгү билдирүү:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Телефон номери:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Радио жыштыгын тандоо"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Үн кызматынын тармагы:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Мобилдик тармагынын түрү:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Телефондун индексин тандоо"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Тандалган тармак түрүн коюу:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"www.google.com, IPv4 үчүн ping сурамы:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"www.google.com, IPv6 үчүн ping сурамы:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP кардарын сыноо:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Түйүн байланышын текшерүү каражатын иштетүү"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Жаңыртуу"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Жаңылоо"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS текшерүүнү которуштуруу"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM\'ге тиешелүү Маалымат/Жөндөөлөр"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Радио жыштыгынын режимин коюу"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Жыштык режиминин тизмеси жүктөлүүдө…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Жөндөө"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Ийгиликсиз"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Ийгиликтүү"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Планшеттин маалыматы"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Телефондун маалыматы"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Байланыш оператору жөнүндө маалымат"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Байланыш операторун өзгөртүү"</string>
 </resources>
diff --git a/res/values-lo/config.xml b/res/values-lo/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-lo/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 16892b0..0534a5f 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ເບີສ່ວນໂຕ"</string>
     <string name="payphone" msgid="7936735771836716941">"ຕູ້​ໂທ​ລະ​ສັບ​ສາ​ທາ​ລະ​ນະ"</string>
     <string name="onHold" msgid="6132725550015899006">"ພັກສາຍຊົ່ວຄາວ"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"ຂໍ້ຄວາມ <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"ຂໍ້ຄວາມຜູ້ໃຫ້ບໍລິການ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"ເລີ່ມລະຫັດ MMI ແລ້ວ"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"ກຳລັງແລ່ນລະຫັດ USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"ຍົກເລີກລະຫັດ MMI ແລ້ວ"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR ເທົ່ານັ້ນ"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ຮູບແບບເຄືອຂ່າຍທີ່ຕ້ອງການ: ຕ້ອງການ WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ຮູບແບບເຄືອຂ່າຍທີ່ຕ້ອງການ: GSM ເທົ່ານັ້ນ"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ຮູບແບບເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ຮູບແບບເຄືອຂ່າຍທີ່ຕ້ອງການ: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ຮູບແບບເຄືອຂ່າຍທີ່ຕ້ອງການ: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ຮູບແບບເຄືອຂ່າຍທີ່ຕ້ອງການ: ທົ່ວໂລກ"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ຮູບແບບເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ໂໝດ​ເຄືອ​ຂ່າຍ​ທີ່​ເລືອກ: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR ເທົ່ານັ້ນ"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"ກຳລັງໂທ"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ເຄືອຂ່າຍ"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"ໂໝດ Enhanced 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ຫຼາຍໝວດໝູ່"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"ເປີດການນຳໃຊ້ຫຼາຍໝວດໝູ່ແລ້ວ"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ປິດການນຳໃຊ້ຫຼາຍໝວດໝູ່ແລ້ວ"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ແນະນຳ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ແນະ​ນໍາ​)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (ແນະ​ນໍາ​)"</string>
     <string name="network_global" msgid="3289646154407617631">"ທົ່ວໂລກ"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ກຳລັງລຶບເບີໂທຈຳກັດການໂທອອກ..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ລຶບໝາຍເລກຈຳກັດການໂທອອກແລ້ວ."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN ບໍ່ໄດ້ອັບເດດເທື່ອ ເນື່ອງຈາກທ່ານໃສ່ລະຫັດ PIN ບໍ່ຖືກຕ້ອງ."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"ບໍ່ໄດ້ອັບເດດ FDN ເນື່ອງຈາກເບີໂທເກີນ 20 ຕົວເລກ."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"ບໍ່ໄດ້ອັບເດດ FDN ເນື່ອງຈາກເບີໂທເກີນ <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ຕົວເລກ."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN ບໍ່ໄດ້ອັບເດດເທື່ອ. ລະຫັດ PIN2 ບໍ່ຖືກຕ້ອງ ຫຼືເບີໂທລະສັບຖືກປະຕິເສດ."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN ເຮັດວຽກລົ້ມເຫຼວ!"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"ກຳລັງອ່ານຈາກ SIM card..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"ບໍ່​ສາ​ມາດ​ໂທ​ໄດ້. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ບໍ່​ແມ່ນ​ເບີ​ໂທ​ສຸກ​ເສີນ."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"ບໍ່​ສາ​ມາດ​ໂທ​ໄດ້. ກົດ​ເບີ​ໂທ​ສຸກ​ເສີນ."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"ບໍ່ສາມາດໂທສຸກເສີນໄດ້"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"ມີພຽງເຈົ້າຂອງອຸປະກອນທີ່ສາມາດໃສ່ລະຫັດ PIN/PUK ໄດ້."</string>
     <string name="police_type_description" msgid="2819533883972081757">"ຕຳຫຼວດ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ລົດໂຮງໝໍ"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"ໄຟ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"ການໂທ Real-time text (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"ອະນຸຍາດໃຫ້ສົ່ງຂໍ້ຄວາມພາຍໃນການໂທສຽງໄດ້"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT ຈະຊ່ວຍຜູ້ໂທທີ່ຫູໜວກ, ມີບັນຫາໃນການໄດ້ຍິນ, ຂາດຄວາມສາມາດໃນການເວົ້າ ຫຼື ຕ້ອງການຫຼາຍກວ່າສຽງ.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ສຶກສາເພີ່ມເຕີມ&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - ການໂທ RTT ຈະຖືກບັນທຶກເປັນການຖອດຂໍ້ຄວາມ\n       &lt;br&gt; - RTT ບໍ່ສາມາດໃຊ້ກັບການໂທວິດີໂອໄດ້"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ໝາຍເຫດ: ບໍ່ສາມາດໃຊ້ RTT ໃນເວລາໂຣມມິງໄດ້"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ປິດ"</item>
     <item msgid="1449091874731375214">"TTY ເຕັມ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ຕົກລົງ"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"ບໍ່"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"ປິດໄວ້"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ໂທລະສັບຢູ່ໃນໂໝດໂທກັບສຸກເສີນ"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"ຈົນຮອດ <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">ໂທລະສັບຈະຢູ່ໃນໂໝດໂທກັບສຸກເສີນເປັນເວລາ <xliff:g id="COUNT_1">%s</xliff:g> ນາທີ.\nທ່ານຕ້ອງການອອກຕອນນີ້ເລີຍບໍ?</item>
+      <item quantity="one">ໂທລະສັບຈະຢູ່ໃນໂໝດໂທກັບສຸກເສີນເປັນເວລາ <xliff:g id="COUNT_0">%s</xliff:g> ນາທີ.\nທ່ານຕ້ອງການອອກຕອນນີ້ເລີຍບໍ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"ບໍລິການ"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"ຕັ້ງຄ່າ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;ຍັງບໍ່ໄດ້ຕັ້ງ&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ປິດການຍົກເລີກການໂທແລ້ວ"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"ປ່ຽນລະຫັດຜ່ານ"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"ປ່ຽນລະຫັດຜ່ານການຍົກເວັ້ນການໂທ"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"ບໍ່ສາມາດປ່ຽນລະຫັດຜ່ານການຍົກເວັ້ນການໂທໄດ້."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"ບໍ່ສາມາດປ່ຽນລະຫັດຜ່ານການຍົກເວັ້ນການໂທໄດ້"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"ລະຫັດຜ່ານບ່ກົງກັນ"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"ໃສ່ລະຫັດຜ່ານ 4 ຕົວເລກ"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"ປ່ຽນລະຫັດຜ່ານແລ້ວ"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"ຢືນຢັນລະຫັດຜ່ານ"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"ໃສ່ລະຫັດຜ່ານ"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ການຕັ້ງຄ່າການຍົກເລີກການໂທ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"ປິດການຕັ້ງຄ່າການຍົກເລີກການໂທທັງໝົດບໍ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ເຄືອຂ່າຍບໍ່ຫວ່າງ. ກະລຸນາລອງໂທໃໝ່ໃນພາຍຫຼັງ."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ເຄືອຂ່າຍແອອັດ. ກະລຸນາຕິດຕໍ່ຜູ້ໃຫ້ບໍລິການມືຖືຂອງທ່ານສຳລັບຄວາມຊ່ວຍເຫຼືອ."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"ໂອນສາຍມາແລ້ວ."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"ເພື່ອໃຊ້ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, ກະລຸນາກວດສອບວ່າເປີດໃຊ້ອິນເຕີເນັດມືຖືສຳລັບຊິມ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ແລ້ວ. ທ່ານສາມາດປ່ຽນໄດ້ໃນການຕັ້ງຄ່າເຄືອຂ່າຍ."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"ເພື່ອໃຊ້ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, ກະລຸນາກວດສອບວ່າເປີດໃຊ້ອິນເຕີເນັດມືຖື ແລະ ການໂຣມມິງອິນເຕີເນັດສຳລັບຊິມ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ແລ້ວ. ທ່ານສາມາດປ່ຽນໄດ້ໃນການຕັ້ງຄ່າເຄືອຂ່າຍ."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"ປິດໄວ້"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ເປີດການເຊື່ອມຕໍ່ຂໍ້ມູນ"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ປິດການເຊື່ອມຕໍ່ຂໍ້ມູນ"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"ນຳໃຊ້ VoLTE ແລ້ວ"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ຈັດຫາການໂທດ້ວຍວິດີໂອແລ້ວ"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"ຈັດຫາການໂທດ້ວຍ Wi-Fi ແລ້ວ"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"ຈັດຫາ EAB/Presence ແລ້ວ"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"ຂໍ້ມູນ Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"ເປີດໃຊ້ DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ຣີສະຕາດອຸປະກອນບໍ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ທ່ານຕ້ອງຣີສະຕາດອຸປະກອນຂອງທ່ານເພື່ອປ່ຽນການຕັ້ງຄ່ານີ້."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ປິດເປີດຄືນໃໝ່"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ຍົກເລີກ"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"ພະລັງງານວິທະຍຸມືຖື"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ເບິ່ງສະໝຸດທີ່ຢູ່ໃນຊິມ"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ເບິ່ງໝາຍເລກໂທອອກທີ່ກຳນົດ"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ເບິ່ງໝາຍເລກບໍລິການໂທອອກ"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"ສະຖານະບໍລິການ IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"ສະຖານະ IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ລົງທະບຽນແລ້ວ"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"ບໍ່ໄດ້ລົງທະບຽນ"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ຫວ່າງ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ບໍ່ສາມາດໃຊ້ໄດ້"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"ການລົງທະບຽນ IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nການໂທຜ່ານ LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nການໂທຜ່ານ WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nການໂທວິດີໂອ: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nສ່ວນຕິດຕໍ່ UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"ກຳລັງໃຫ້ບໍລິການ"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"ນອກເຂດໃຫ້ບໍລິການ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"ໂທສຸກເສີນເທົ່ານັ້ນ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ສັນຍານປິດຢູ່"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ໂຣມມິງ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ບໍ່ໄດ້ໂຣມມິງ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"ບໍ່ເຮັດວຽກ"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"ກຳລັງດັງ"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"ກຳລັງຢູ່ໃນສາຍ"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ຕັດການເຊື່ອມຕໍ່ແລ້ວ"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"ກຳລັງເຊື່ອມຕໍ່"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"ເຊື່ອມຕໍ່ແລ້ວ"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"ລະງັບໄວ້ແລ້ວ"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"ບໍ່ຮູ້ຈັກ"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ໄບຕ໌"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"subId ປັດຈຸບັນ:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId ຂອງຊິມອິນເຕີເນັດເລີ່ມຕົ້ນ:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"ແບນວິດ DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"ແບນວິດ UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ຂໍ້ມູນສະຖານທີ່ມືຖື (ສິ້ນສຸດການສະໜັບສະໜຸນແລ້ວ):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"ການຕັ້ງຄ່າຊ່ອງ LTE ກາຍະພາບ:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ອັດຕາການໂຫຼດຄືນໃໝ່ຂອງຂໍ້ມູນມືຖື:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ຂໍ້ມູນການວັດແທກມືຖືທັງໝົດ:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ບໍລິການຂໍ້ມູນ:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ໂຣມມິງ​:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI​:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ການປ່ຽນເສັ້ນທາງການໂທ:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ຈຳນວນການຣີເຊັດຂອງ PPP ຕັ້ງແຕ່ເປີດເຄື່ອງມາ:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"ເຄືອຂ່າຍປັດຈຸບັນ:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ຂໍ້ມູນທີ່ໄດ້ຮັບ:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ບໍລິການສຽງ:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"ຄວາມແຮງສັນຍານ:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ສະຖານະການໂທ:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ຂໍ້ມູນສົ່ງໄປແລ້ວ:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"ຂໍ້ຄວາມທີ່ຖ້າຢູ່:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ເບີໂທລະສັບ:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ເລືອກແຖບຄວາມຖີ່ວິທະຍຸ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ປະເພດເຄືອຂ່າຍສຽງ:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ປະເພດເຄືອຂ່າຍຂໍ້ມູນ:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ເລືອກດັດຊະນີໂທລະສັບ"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ເລືອກປະເພດເຄືອຂ່າຍທີ່ຕ້ອງການໃຊ້:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping Hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping Hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"ທົດສອບລູກຂ່າຍ HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ເລີ່ມທົດສອບ ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"ອັບເດດ"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ໂຫຼດຂໍ້ມູນໃໝ່"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"ເປີດ/ປິດ ການກວດ DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"ຂໍ້ມູນ/ການຕັ້ງຄ່າສະເພາະ OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ຕັ້ງໂໝດແຖບຄວາມຖີ່ວິທະຍຸ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ກຳລັງດາວໂຫລດລາຍຊື່ແຖບຄວາມຖີ່..."</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"ກຳນົດ"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ບໍ່ສຳເລັດ"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"ສຳເລັດ"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ຂໍ້​ມູນ​ແທັບເລັດ"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ຂໍ້​ມູນ​ໂທລະ​ສັບ"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ຂໍ້ມູນການເປີດນຳໃຊ້ເຄືອຂ່າຍ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ກະຕຸ້ນການຈັດຫາຜູ້ໃຫ້ບໍລິການ"</string>
 </resources>
diff --git a/res/values-lt/config.xml b/res/values-lt/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-lt/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 186d192..bd5a571 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privatus numeris"</string>
     <string name="payphone" msgid="7936735771836716941">"Taksofonas"</string>
     <string name="onHold" msgid="6132725550015899006">"Sulaikyta"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"„<xliff:g id="MMICARRIER">%s</xliff:g>“ pranešimas"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operatoriaus pranešimas"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Paleistas MMI kodas"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Paleistas USSD kodas..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Atšauktas MMI kodas"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE / TDSCDMA / GSM / WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA / CDMA / EVDO / GSM / WCDMA"</item>
     <item msgid="6284311629324843506">"LTE / TDSCDMA / CDMA / EVDO / GSM / WCDMA"</item>
+    <item msgid="4738087170533378966">"Tik NR"</item>
+    <item msgid="2935877729588775187">"NR / LTE"</item>
+    <item msgid="8967513231424970529">"NR / LTE / CDMA / „EvDo“"</item>
+    <item msgid="1542643426479755015">"NR / LTE / GSM / WCDMA"</item>
+    <item msgid="5778162260258129841">"NR / LTE / CDMA / „EvDo“ / GSM / WCDMA"</item>
+    <item msgid="8088614845214545367">"NR / LTE / WCDMA"</item>
+    <item msgid="6517428040626326776">"NR / LTE / TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR / LTE / TDSCDMA / GSM"</item>
+    <item msgid="4130965694947056705">"NR / LTE / TDSCDMA / WCDMA"</item>
+    <item msgid="3869566732842046032">"NR / LTE / TDSCDMA / GSM / WCDMA"</item>
+    <item msgid="3942770927563146543">"NR / LTE / TDSCDMA / CDMA / „EvDo“ / GSM / WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Pageidaujamas tinklo režimas: pageidautina WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Pageidaujamas tinklo režimas: tik GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Pageidaujamas tinklo režimas: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Pageidaujamas tinklo režimas: GSM / WCDMA / LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Pageidaujamas tinklo režimas: CDMA ir LTE / EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Pageidaujamas tinklo režimas: LTE / CDMA / „EvDo“ / GSM / WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Pageidaujamas tinklo režimas: pasaulinis"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Pageidaujamas tinklo režimas: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Pageidautinas tinklo režimas: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Pageidaujamas tinklo režimas: LTE / TDSCDMA / GSM / WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Pageidaujamas tinklo režimas: TDSCDMA / CDMA / „EvDo“ / GSM / WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Pageidaujamas tinklo režimas: LTE / TDSCDMA / CDMA / „EvDo“ / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Pageidaujamas tinklo režimas: tik NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Pageidaujamas tinklo režimas: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Pageidaujamas tinklo režimas: NR / LTE / CDMA / „EvDo“"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Pageidaujamas tinklo režimas: NR / LTE / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Pageidaujamas tinklo režimas: NR / LTE / CDMA / „EvDo“ / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Pageidaujamas tinklo režimas: NR / LTE / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Pageidaujamas tinklo režimas: NR / LTE / TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Pageidaujamas tinklo režimas: NR / LTE / TDSCDMA / GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Pageidaujamas tinklo režimas: NR / LTE / TDSCDMA / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Pageidaujamas tinklo režimas: NR / LTE / TDSCDMA / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Pageidaujamas tinklo režimas: NR / LTE / TDSCDMA / CDMA / „EvDo“ / GSM / WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Skambinama"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Tinklas"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Patobulintas 4G LTE režimas"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Kelios kategorijos"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Įgalintos kelios kategorijos"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Išjungtos kelios kategorijos"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (rekomenduojama)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (rekomenduojamas)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (rekomenduojamas)"</string>
     <string name="network_global" msgid="3289646154407617631">"Visuotinis"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Trinamas fiksuoto rinkimo numeris..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Ištrintas fiksuoto rinkimo numeris."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN neatnaujintas, nes įvedėte neteisingą PIN kodą."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN neatnaujintas, nes numeris viršija 20 skaitmenų apribojimą."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FRN neatnaujintas, nes numeris viršija <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> skaitm. apribojimą."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN nebuvo atnaujintas. Įvestas PIN2 kodas buvo netinkamas arba telefono numeris buvo atmestas."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Nepavyko atlikti FDN operacijos."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Skaitoma iš SIM kortelės..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Nepavyko paskambinti. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nėra pagalbos numeris."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Nepavyko paskambinti. Surinkite pagalbos numerį."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Skambučių pagalbos numeriu paslauga nepasiekiama"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Tik įrenginio savininkas gali įvesti PIN / PUK kodus."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policija"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Greitoji medicinos pagalba"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Gaisras"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Tikralaikių teksto pranešimų (RTT) skambutis"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Leisti susirašinėti dalyvaujant balso skambutyje"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT padeda skambintojams, kurie yra kurti, neprigirdintys, sunkiai kalba arba kuriems reikia ne tik kalbėti.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Sužinokite daugiau&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT skambučiai išsaugomi kaip pranešimų nuorašai\n       &lt;br&gt; – RTT paslauga nepasiekiama dalyvaujant vaizdo skambučiuose"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Pastaba: RTT paslauga nepasiekiama, kai naudojamas tarptinklinis ryšys"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY išjungta"</item>
     <item msgid="1449091874731375214">"TTY pilnas"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Taip"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ne"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Atsisakyti"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefone veikia atgalinio skambinimo pagalbos numeriu režimas"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Iki <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Telefone <xliff:g id="COUNT_1">%s</xliff:g> minutę veiks atgalinio skambinimo pagalbos numeriu režimas.\nAr norite jį išjungti dabar?</item>
+      <item quantity="few">Telefone <xliff:g id="COUNT_1">%s</xliff:g> minutes veiks atgalinio skambinimo pagalbos numeriu režimas.\nAr norite jį išjungti dabar?</item>
+      <item quantity="many">Telefone <xliff:g id="COUNT_1">%s</xliff:g> minutės veiks atgalinio skambinimo pagalbos numeriu režimas.\nAr norite jį išjungti dabar?</item>
+      <item quantity="other">Telefone <xliff:g id="COUNT_1">%s</xliff:g> minučių veiks atgalinio skambinimo pagalbos numeriu režimas.\nAr norite jį išjungti dabar?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Paslaugos teikėjas"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Sąranka"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nenustatyta&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Skambučių blokavimas išaktyvintas"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Pakeisti slaptažodį"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Pakeisti skambučių blokavimo slaptažodį"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Nepavyko pakeisti skambučių blokavimo slaptažodžio."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Nepavyko pakeisti skambučių blokavimo slaptažodžio"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Slaptažodžiai neatitinka"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Įveskite 4 skaičių slaptažodį"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Slaptažodis pakeistas"</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Patvirtinti slaptažodį"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Įveskite slaptažodį"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Skambučių blokavimo nustatymai"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Išaktyvinti visus skambučių blokavimo nustatymus?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Tinklas užimtas. Vėliau pabandykite dar kartą paskambinti."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Tinklas perpildytas. Dėl pagalbos susisiekite su mobiliojo ryšio operatoriumi."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Skambutis nukreiptas."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Norėdami naudoti paslaugą (<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>0, įsitikinkite, kad <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM kortelės mobiliojo ryšio duomenys įjungti. Tai galite pakeisti apsilankę mobiliojo ryšio tinklo nustatymuose."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Norėdami naudoti paslaugą (<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>), įsitikinkite, kad <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM kortelės mobiliojo ryšio duomenys ir tarptinklinis duomenų ryšys įjungti. Tai galite pakeisti apsilankę mobiliojo ryšio nustatymuose."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Atsisakyti"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Įgalinti duomenų ryšį"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Išjungti duomenų ryšį"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"„VoLTE“ aprūpinimas"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Vaizdo skambučių aprūpinimas"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Skambinimo naudojant „Wi-Fi“ ryšį aprūpinimas"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB / veiklos aprūpinimas"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS duomenys"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Įgalinti DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Paleisti įrenginį iš naujo?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Turite paleisti įrenginį iš naujo, kad galėtumėte pakeisti šį nustatymą."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Paleisti iš naujo"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Atšaukti"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobiliojo ryšio radijo signalas"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Žiūrėti SIM kortelės adresų knygą"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Žiūrėti fiksuotojo rinkimo numerius"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Žiūrėti paslaugos renkamus numerius"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS paslaugos būsena"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS būsena"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Užregistruota"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Neregistruoti naudotojai"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Pasiekiama"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nepasiekiama"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registracija: <xliff:g id="STATUS">%1$s</xliff:g>\nBalso skambučiai naudojant LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nBalso skambučiai naudojant „Wi-Fi“: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVaizdo skambučiai: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT sąsaja: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Aptarnaujama"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Paslaugos neteikiamos"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Tik skambučiai pagalbos numeriu"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radijas išjungtas"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Tarptinklinis ryšys"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Neveikia tarptinklinis ryšys"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Neaktyvus"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Skambinama"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Skambutis vykdomas"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Atsijungta"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Prisijungiama"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Prisijungta"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Laikinai sustabdyta"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Nežinoma"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pakuot."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"B"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Dabartinis papildomas ID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Numatytųjų duomenų SIM kortelės papildomas ID:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL pralaidumas (Kb/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL pralaidumas (Kb/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobiliojo ryšio vietovės informacija (nebenaudojama):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE fizinio kanalo konfigūracija:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobiliojo ryšio informacijos atnaujinimo dažnis:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Visų mobiliųjų ryšių įvertinimo informacija:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Duomenų paslauga:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Tarptinklinis ryšys:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Skambučio peradresavimas:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP nustatymų iš naujo skaičius po įkrovos:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Dabartinis tinklas:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Gauti duomenys:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Balso paslauga:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signalo stiprumas:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Balso skambučio būsena:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Duomenys išsiųsti:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Laukiantis pranešimas:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefono numeris:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Pasirinkti radijo dažnių juostą"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Balso tinklo tipas:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Duomenų tinklo tipas:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Pasirinkti telefono indeksą"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Nustatyti pageidaujamą tinklo tipą:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ryšio patikros prieglobos serverio pavadinimas (www.google.com) „IPv4“:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ryšio patikros prieglobos serverio pavadinimas (www.google.com) „IPv6“:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP kliento bandymas:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Paleisti ryšio patikros bandymą"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Atnaujinti"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Atnaujinti"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Kaitalioti DNS tikrinimą"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM būdinga informacija / nustatymai"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Nustatyti radijo dažnių režimą"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Įkeliamas dažnių sąrašas…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Nustatyti"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Nepavyko"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Pavyko"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Planšetinio kompiuterio informacija"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefono informacija"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operatoriaus aprūpinimo informacija"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktyviklio operatoriaus aprūpinimas"</string>
 </resources>
diff --git a/res/values-lv/config.xml b/res/values-lv/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-lv/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 89195a0..eea7b3a 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privāts numurs"</string>
     <string name="payphone" msgid="7936735771836716941">"Maksas tālrunis"</string>
     <string name="onHold" msgid="6132725550015899006">"Aizturēts"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Īsziņa"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mobilo sakaru operatora ziņojums"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI kods ir startēts."</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD kods darbojas…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI kods ir atcelts"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Tikai NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Ieteicamais tīkla režīms: WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Ieteicamais tīkla režīms: tikai GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Vēlamais tīkla režīms: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Vēlamais tīkla režīms: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Vēlamais tīkla režīms: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Ieteicamais tīkla režīms: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Vēlamais tīkla režīms: Globāls"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Vēlamais tīkla režīms: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Vēlamais tīkla režīms: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Ieteicamais tīkla režīms: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Ieteicamais tīkla režīms: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Ieteicamais tīkla režīms: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Ieteicamais tīkla režīms: tikai NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Ieteicamais tīkla režīms: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Ieteicamais tīkla režīms: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Ieteicamais tīkla režīms: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Ieteicamais tīkla režīms: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Ieteicamais tīkla režīms: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Ieteicamais tīkla režīms: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Ieteicamais tīkla režīms: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Ieteicamais tīkla režīms: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Ieteicamais tīkla režīms: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Ieteicamais tīkla režīms: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Zvanīšana"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Tīkls"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Uzlabota 4G LTE režīms"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Vairākas kategorijas"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Vairāku kategoriju režīms ir iespējots."</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Vairāku kategoriju režīms ir atspējots."</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ieteicams)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ieteicams)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (ieteicams)"</string>
     <string name="network_global" msgid="3289646154407617631">"Visā pasaulē"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Notiek fiksētā numuru sastādīšanas numura dzēšana…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Fiksētais numuru sastādīšanas numurs ir atspējots."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"IZSN nav atjaunināts, jo tika ievadīts nepareizs PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"IZSN netika atjaunināts, jo numurā ir vairāk par 20 cipariem."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"IZSN netika atjaunināts, jo numurā ir vairāk par <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> cipariem."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"IZSN netika atjaunināts. Ievadītais PIN2 nebija pareizs, vai tālruņa numurs tika noraidīts."</string>
     <string name="fdn_failed" msgid="216592346853420250">"IZSN ievadīšana neizdevās."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Notiek lasīšana no SIM kartes..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Nevar veikt zvanu. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nav ārkārtas numurs."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Nevar veikt zvanu. Zvaniet ārkārtas numuram."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Ārkārtas izsaukumi nav pieejami"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Tikai ierīces īpašnieks var ievadīt PIN/PUK kodu."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policija"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ātrā palīdzība"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Ugunsgrēks"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Reāllaika teksta (RTT) zvans"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Atļaut ziņojumapmaiņu balss zvanā"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT funkcionalitāte palīdz nedzirdīgiem un vājdzirdīgiem zvanītājiem, kā arī zvanītājiem, kuriem ir runas traucējumi vai ir nepieciešama ne tikai balss skaņa.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Uzzināt vairāk&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT zvani tiek saglabāti ziņojumu transkripcijas formātā.\n       &lt;br&gt; - RTT funkcionalitāte nav pieejama videozvaniem."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Piezīme. RTT nav pieejams viesabonēšanas laikā."</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Teletaips ir izslēgts"</item>
     <item msgid="1449091874731375214">"Viss teletaips"</item>
@@ -611,6 +639,13 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Jā"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nē"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Noraidīt"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Tālrunis atrodas ārkārtas atzvana režīmā."</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Līdz plkst. <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="zero">Tālrunis atradīsies ārkārtas atzvana režīmā <xliff:g id="COUNT_1">%s</xliff:g> minūtes.\nVai vēlaties iziet tūlīt?</item>
+      <item quantity="one">Tālrunis atradīsies ārkārtas atzvana režīmā <xliff:g id="COUNT_1">%s</xliff:g> minūti.\nVai vēlaties iziet tūlīt?</item>
+      <item quantity="other">Tālrunis atradīsies ārkārtas atzvana režīmā <xliff:g id="COUNT_1">%s</xliff:g> minūtes.\nVai vēlaties iziet tūlīt?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Pakalpojums"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Iestatīšana"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nav iestatīts&gt;"</string>
@@ -750,7 +785,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Zvanu aizliegšana deaktivizēta"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Mainīt paroli"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Mainīt zvanu aizliegšanas paroli"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Nevar mainīt zvanu aizliegšanas paroli."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Nevar mainīt zvanu aizliegšanas paroli"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Paroles neatbilst"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Ievadiet paroli, kas sastāv no 4 cipariem"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Parole nomainīta"</string>
@@ -759,7 +794,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Apstiprināt paroli"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Ievadiet paroli"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Zvanu aizliegšanas iestatījumi"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Vai deaktivizēt visus zvanu aizliegšanas iestatījumus?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Tīkls ir aizņemts. Lūdzu, vēlāk mēģiniet zvanīt vēlreiz."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Tīkls ir pārpildīts. Lai saņemtu palīdzību, sazinieties ar savu mobilo sakaru operatoru."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Zvans novirzīts."</string>
@@ -789,4 +823,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Lai izmantotu pakalpojumu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, jāieslēdz mobilie dati SIM kartei <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Tos var ieslēgt mobilā tīkla iestatījumos."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Lai izmantotu pakalpojumu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, jāieslēdz mobilie dati un datu viesabonēšana SIM kartei <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Tos var ieslēgt mobilā tīkla iestatījumos."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Nerādīt"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Iespējot datu savienojumu"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Atspējot datu savienojumu"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE nodrošināts"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videozvani nodrošināti"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi zvani nodrošināti"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/klātbūtne nodrošināta"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS dati"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Iespējot DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Vai restartēt ierīci?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Lai mainītu šo iestatījumu, jums jārestartē ierīce."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restartēt"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Atcelt"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobilā tālruņa radio signāla stiprums"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Skatīt SIM adrešu grāmatu"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Skatīt ierobežotā zvanu saraksta numurus"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Pakalpojuma iezvanes numuru skatīšana"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Tūlītējās ziņojumapmaiņas pakalpojuma statuss"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Tūlītējās ziņojumapmaiņas statuss"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Reģistrēts"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Nav reģistrēts"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Pieejams"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nav pieejama"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Tūlītējās ziņojumapmaiņas reģistrācija: <xliff:g id="STATUS">%1$s</xliff:g>\nBalss pārraide ar LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nBalss pārraide ar Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideozvani: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT saskarne: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Darbojas"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Nedarbojas"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Tikai ārkārtas izsaukumi"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio izslēgts"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Viesabonēšana"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Bez viesabonēšanas"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Dīkstāvē"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Notiek zvanīšana"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Notiek zvans"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Savienojums pārtraukts"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Notiek savienojuma izveide"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Savienojums izveidots"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Darbība apturēta"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Nezināms"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"baiti"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Pašreizējais papildu ID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Noklusējuma datu SIM kartes papildu ID:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL joslas platums (kb/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL joslas platums (kb/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobilā tālruņa atrašanās vietas informācija (novecojusi):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE fiziskā kanāla konfigurācija:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobilā tīkla informācijas atsvaidzināšanas biežums:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Visa mobilā tīkla mērījumu informācija:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datu pakalpojums:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Viesabonēšana:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Zvana novirzīšana:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Protokola PPP atiestatīšanas reižu skaits kopš palaišanas:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Pašreizējais tīkls:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Saņemtie dati:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Balss pakalpojums:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signāla stiprums:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Balss zvana statuss:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Dati nosūtīti:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Ziņojums gaida:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Tālruņa numurs:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Atlasīt radio frekvenču joslu"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Balss pakalpojumu tīkla veids:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Datu tīkla veids:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Atlasīt tālruņa kodu"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Iestatiet ieteicamo tīkla veidu:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ehotestēšanas saimniekdatora nosaukuma (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ehotestēšanas saimniekdatora nosaukuma (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP klienta tests:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Veikt ehotestēšanu"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Atjaunināt"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Atsvaidzināt"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Pārslēgt DNS pārbaudi"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM raksturīga informācija/iestatījumi"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Radio frekvenču joslu režīma iestatīšana"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Notiek joslu saraksta ielāde…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Iestatīt"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Neizdevās"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Izdevās"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informācija par planšetdatoru"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Tālruņa informācija"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informācija par mobilo sakaru operatora nodrošināšanu"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktivizēt operatora nodrošināšanu"</string>
 </resources>
diff --git a/res/values-mcc208-mnc10-fr/strings.xml b/res/values-mcc208-mnc10-fr/strings.xml
index ac5ef59..eae41e9 100644
--- a/res/values-mcc208-mnc10-fr/strings.xml
+++ b/res/values-mcc208-mnc10-fr/strings.xml
@@ -3,4 +3,5 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="enhanced_4g_lte_mode_summary">Utiliser la fonction Voix 4G (HD) lorsqu\'elle est disponible</string>
     <string name="enhanced_4g_lte_mode_title">Activer Voix 4G (HD)</string>
+    <string name="wifi_calling">Activer Appels Wi-Fi</string>
 </resources>
diff --git a/res/values-mk/config.xml b/res/values-mk/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-mk/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 514e75d..984bbca 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Приватен број"</string>
     <string name="payphone" msgid="7936735771836716941">"Говорница"</string>
     <string name="onHold" msgid="6132725550015899006">"На чекање"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Порака на <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Порака од оператор"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI кодот е стартуван"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD кодот се извршува..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI кодот е откажан"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Само NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Претпочитан режим на мрежа: се претпочита WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Претпочитан режим на мрежа: само GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Претпочитан режим на мрежа: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Претпочитан режим на мрежа: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Претпочитан режим на мрежа: CDMA + LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Претпочитан режим на мрежа: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Претпочитан режим на мрежа: глобален"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Претпочитан режим на мрежа: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Претпочитан режим на мрежа: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Претпочитан режим на мрежа: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Претпочитан режим на мрежа: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Претпочитан режим на мрежа: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Претпочитан режим на мрежа: само NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Претпочитан режим на мрежа: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Претпочитан режим на мрежа: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Претпочитан режим на мрежа: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Претпочитан режим на мрежа: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Претпочитан режим на мрежа: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Претпочитан режим на мрежа: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Претпочитан режим на мрежа: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Претпочитан режим на мрежа: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Претпочитан режим на мрежа: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Претпочитан режим на мрежа: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Повикување"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Мрежа"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Режим на подобрени 4G LTE"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Мултикатегорија"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Мултикатегоријата е овозможена"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Мултикатегоријата е оневозможена"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (препорачано)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (препорачано)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (препорачано)"</string>
     <string name="network_global" msgid="3289646154407617631">"Глобална"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Бришење број на фиксно бирање..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Бројот на фиксно бирање е избришан."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN не се ажурираше зашто внесовте погрешен PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN не е ажуриран затоа што бројот содржи повеќе од 20 цифри."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN не е ажуриран затоа што бројот содржи повеќе од <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> цифри."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN не се ажурираше. PIN2 кодот е неточен или телефонскиот број е одбиен."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Операцијата со FDN не успеа."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Се чита од SIM картичка..."</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Не може да повика. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не е број за итни повици."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Не може да повика. Бирајте го бројот за итни повици."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Итните повици не се достапни"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Само сопственикот на уредот може да внесува кодови PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Полиција"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Брза помош"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Пожарна"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Повик со „Текст во реално време“ (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Дозволете пораки во текот на гласовен повик"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Функцијата RTT им помага на повикувачи коишто се глуви, слабо слушаат, имаат говорна мана или пак, им е потребно многу повеќе од глас.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Дознајте повеќе&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Повиците со RTT се зачувуваат како препис на порака\n       &lt;br&gt; - Функцијата RTT не е достапна за видеоповици"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Напомена: RTT не е достапна во роаминг"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY исклучени"</item>
     <item msgid="1449091874731375214">"TTY целосни"</item>
@@ -611,6 +639,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Да"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Не"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Отфрли"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефонот е во режим на итни повратни повици"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"До <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Телефонот ќе биде во режим на итни повратни повици <xliff:g id="COUNT_1">%s</xliff:g> минута.\n Дали сакате да излезете сега?</item>
+      <item quantity="other">Телефонот ќе биде во режим на итни повратни повици <xliff:g id="COUNT_1">%s</xliff:g> минути.\n Дали сакате да излезете сега?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Услуга"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Поставување"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Не е поставен&gt;"</string>
@@ -750,7 +784,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Забраната на повици е деактивирана"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Променете ја лозинката"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Променете ја лозинката за забрана на повици"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Не може да се промени лозинката за забрана на повици."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Не може да се промени лозинката за забрана на повици"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Лозинките не се совпаѓаат"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Внесете лозинка со 4 броеви"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Лозинката е променета"</string>
@@ -759,7 +793,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Потврдете ја лозинката"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Внесете лозинка"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Поставки за забрана на повици"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Да се деактивираат сите поставки за забрана на повици?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Мрежата е зафатена. Обидете се да повикате повторно подоцна."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Мрежата е презафатена. Контактирајте со вашиот мобилен оператор за помош."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Повикот е пренасочен."</string>
@@ -789,4 +822,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"За користење <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, уверете се дека мобилниот интернет е вклучен за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Тоа може да го промените во поставките за мобилна мрежа."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"За користење <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, уверете се дека мобилниот интернет и интернет роамингот се вклучени за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Овие може да ги промените во поставките за мобилна мрежа."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Отфрли"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Овозможете врска со податоците"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Оневозможете врска со податоците"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Обезбедување на VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Овозможено е видеоповикување"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Овозможено е повикување преку Wi-Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Овозможен е подобрен адресар"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Податоци на Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Овозможете DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Да се рестартира уредот?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Треба да го рестартирате уредот за да ја промените поставкава."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Рестартирај"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Откажи"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Радио-напојување на мобилен"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Прикажи именик на SIM-картичката"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Прикажи броеви со ограничено бирање"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Прикажи броеви за бирање служби"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Статус на услугата IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Статус на IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Регистриран"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Не е регистриран"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Достапен"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Недостапен"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-регистрација: <xliff:g id="STATUS">%1$s</xliff:g>\nКомуникација преку LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nКомуникација преку Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВидеоповикување: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-интерфејс: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Во употреба"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Надвор од употреба"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Само итни повици"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Радиото е исклучено"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роаминг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Надвор од роаминг"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Мирување"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ѕвонење"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Повик во тек"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Исклучен"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Се поврзува"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Поврзан"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Суспендиран"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Непознат"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"бајти"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Тековен SUBID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SUBID на стандардната SIM за мобилен интернет:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Брзина на пренос при преземање (кбит/с):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Брзина на пренос при прикачување (кбит/с):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Информации за локација на мобилен (неподдржано):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфигурација на физички канал на LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Стапка на освежување на информациите за мобилниот:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Сите информации за мерењата на мобилниот:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Услуга за мобилен интернет:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роаминг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Пренасочен повик:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Број на ресетирања PPP од подигање:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Тековна мрежа:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Примени податоци:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Гласовна услуга:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Јачина на сигнал:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Статус на гласовен повик:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Испратени податоци:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Порака на чекање:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Телефонски број:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Избери појас на радио"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Тип гласовна мрежа:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Тип мрежа на податоци:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Изберете индекс на телефонот"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Поставете претпочитан тип мрежа:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Пингај го хостот (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Пингај го хостот (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Тестирање HTTP-клиент:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Изврши тест со пингање"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Ажурирање"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Освежи"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Префрли на DNS-проверка"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Информации/Поставки карактеристични за ОЕМ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Поставете режим на појас на радио"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Се вчитува список на појаси…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Постави"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Неуспешно"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Успешно"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Информации за таблет"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Информации за телефонот"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Информации за обезбедување оператор"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Активирајте обезбедување оператор"</string>
 </resources>
diff --git a/res/values-ml/config.xml b/res/values-ml/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ml/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 2d94f67..d2d03e5 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"സ്വകാര്യ നമ്പർ"</string>
     <string name="payphone" msgid="7936735771836716941">"പണം നൽകി ഉപയോഗിക്കുന്ന ഫോൺ"</string>
     <string name="onHold" msgid="6132725550015899006">"ഹോള്‍ഡിലാണ്"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> സന്ദേശം"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"സേവനദാതാവിന്റെ സന്ദേശം"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI കോഡ് ആരംഭിച്ചു"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD കോഡ് പ്രവർത്തിക്കുന്നു…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI കോഡ് റദ്ദാക്കി"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR മാത്രം"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: WCDMA തിരഞ്ഞെടുത്തു"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: GSM മാത്രം"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: ഗ്ലോബൽ"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR only"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"കോൾചെയ്യുന്നു"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"നെറ്റ്‌വർക്ക്"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"മെച്ചപ്പെടുത്തിയ 4G LTE മോഡ്"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ഒന്നിലധികം വിഭാഗം"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"ഒന്നിലധികം വിഭാഗം പ്രവർത്തനക്ഷമമാക്കി"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ഒന്നിലധികം വിഭാഗം പ്രവർത്തനരഹിതമാക്കി"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (നിർദ്ദേശിക്കുന്നത്)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ശുപാർശചെയ്‌തത്)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (ശുപാർശചെയ്‌തത്)"</string>
     <string name="network_global" msgid="3289646154407617631">"ഗ്ലോബൽ"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"സ്ഥിര ഡയലിംഗ് നമ്പർ ഇല്ലാതാക്കുന്നു…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"സ്ഥിര ഡയലിംഗ് നമ്പർ ഇല്ലാതാക്കി."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"നിങ്ങൾ തെറ്റായ പിൻ നൽകിയതിനാൽ FDN അപ്‌ഡേറ്റുചെയ്‌തില്ല."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"നമ്പർ 20 അക്കങ്ങൾ കവിഞ്ഞതിനാൽ FDN അപ്‌ഡേറ്റ് ചെയ്‌തില്ല."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> അക്കങ്ങൾ കവിഞ്ഞതിനാൽ FDN അപ്‌ഡേറ്റ് ചെയ്‌തില്ല."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN അപ്‌ഡേറ്റുചെയ്‌തില്ല. PIN2 തെറ്റായിരുന്നു, അല്ലെങ്കിൽ ഫോൺ നമ്പർ നിരസിച്ചു."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN പ്രവർത്തനം പരാജയപ്പെട്ടു."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"സിം കാർഡിൽ നിന്നും റീഡുചെയ്യുന്നു…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"കോൾ ചെയ്യാനാവില്ല. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> എന്നത് ഒരു അടിയന്തിര നമ്പരല്ല."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"കോൾ ചെയ്യാനാവില്ല. ഒരു അടിയന്തിര കോൾ നമ്പർ ഡയൽചെയ്യുക."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"എമർജൻസി കോളിംഗ് ലഭ്യമല്ല"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"ഉപകരണത്തിന്റെ ഉടമയ്ക്ക് മാത്രമേ പിൻ/PUK കോഡുകൾ നൽകാനാകൂ."</string>
     <string name="police_type_description" msgid="2819533883972081757">"പോലീസ്"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ആംബുലൻസ്"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"തീ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"തത്സമയ ടെക്‌സ്‌റ്റ്(RTT) കോൾ"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"വോയ്‌സ് കോളിൽ സന്ദേശമയയ്‌ക്കൽ അനുവദിക്കുക"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"ബധിരർ, കേൾവി ശക്തി കുറഞ്ഞവർ, സംഭാഷണ വൈകല്യമുള്ളവർ അല്ലെങ്കിൽ ശബ്‌ദത്തിന് പുറമേ മറ്റ് സഹായവും ആവശ്യമുള്ള, വിളിക്കുന്ന ആളുകളെ RTT സഹായിക്കുന്നു.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;കൂടുതലറിയുക&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT കോളുകൾ സന്ദേശ ട്രാൻസ്‌ക്രിപ്റ്റായി സംരക്ഷിക്കുന്നു\n       &lt;br&gt; - വീഡിയോ കോളുകൾക്കായി RTT ലഭ്യമല്ല"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"കുറിപ്പ്: റോമിംഗിലായിരിക്കുമ്പോൾ RTT ലഭ്യമല്ല"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ഓഫാണ്"</item>
     <item msgid="1449091874731375214">"TTY പൂർണ്ണം"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"വേണം"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"വേണ്ട"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"നിരസിക്കുക"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ഫോൺ അടിയന്തര കോൾബാക്ക് മോഡിലാണ്"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> വരെ"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">ഫോൺ <xliff:g id="COUNT_1">%s</xliff:g> മിനിറ്റ്, അടിയന്തര കോൾബാക്ക് മോഡിലായിരിക്കും.\nനിങ്ങൾക്ക് ഇപ്പോൾ പുറത്ത് കടക്കണോ?</item>
+      <item quantity="one">ഫോൺ <xliff:g id="COUNT_0">%s</xliff:g> മിനിറ്റ്, അടിയന്തര കോൾബാക്ക് മോഡിലായിരിക്കും.\nനിങ്ങൾക്ക് ഇപ്പോൾ പുറത്ത് കടക്കണോ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"സേവനം"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"സജ്ജമാക്കുക"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;സജ്ജീകരിച്ചിട്ടില്ല&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"കോൾ തടയൽ നിർജ്ജീവമാക്കി"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"പാസ്‌വേഡ് മാറ്റുക"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"കോൾ തടയൽ പാസ്‌വേഡ് മാറ്റുക"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"കോൾ തടയൽ പാസ്‌വേഡ് മാറ്റാനാവില്ല."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"കോൾ തടയൽ പാസ്‌വേഡ് മാറ്റാനാവില്ല"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"പാസ്‌വേഡുകള്‍ പൊരുത്തപ്പെടുന്നില്ല"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 അക്കങ്ങളുള്ള പാസ്‌വേഡ് നൽകുക"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"‍പാസ്‌വേഡ് മാറ്റി"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"പാസ്‌വേഡ് സ്ഥിരീകരിക്കുക"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"പാസ്‌വേഡ് നൽകുക"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"കോൾ തടയൽ ക്രമീകരണം"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"എല്ലാ കോൾ തടയൽ ക്രമീകരണവും നിർജ്ജീവമാക്കണോ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"നെറ്റ്‌വർക്ക് തിരക്കിലാണ്. കോൾ ചെയ്യാൻ പിന്നീട് വീണ്ടും ശ്രമിക്കുക."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"നെറ്റ്‌വർക്ക് തിരക്കിലാണ്. സഹായത്തിനായി നിങ്ങളുടെ മൊബൈൽ ഓപ്പറേറ്ററെ ബന്ധപ്പെടുക."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"കോൾ വഴി തിരിച്ചുവിട്ടു."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ഉപയോഗിക്കാൻ, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> എന്നതിനായി മൊബൈൽ ഡാറ്റ ഓണാണ് എന്ന് ഉറപ്പാക്കുക. നിങ്ങൾക്ക് ഇത് മൊബൈൽ നെറ്റ്‌വർക്ക് ക്രമീകരണത്തിൽ മാറ്റാം."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> എന്നത് ഉപയോഗിക്കാൻ, മൊബൈൽ ഡാറ്റയും ഡാറ്റ റോമിംഗും, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> എന്നതിനായി ഓണാണ് എന്ന് ഉറപ്പാക്കുക. നിങ്ങൾക്ക് ഇത് മൊബൈൽ നെറ്റ്‌വർക്ക് ക്രമീകരണത്തിൽ മാറ്റാം."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"നിരസിക്കുക"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ഡാറ്റാ കണക്ഷൻ പ്രവർത്തനക്ഷമമാക്കുക"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ഡാറ്റ കണക്ഷൻ പ്രവർത്തനരഹിതമാക്കുക"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ഏർപ്പെടുത്തി"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"വീഡിയോ കോളിംഗ് ഏർപ്പെടുത്തി"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"വൈഫൈ കോളിംഗ് ഏർപ്പെടുത്തി"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/സാന്നിധ്യം ഏർപ്പെടുത്തി"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ഡാറ്റ"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS പ്രവർത്തനക്ഷമമാക്കുക"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ഉപകരണം റീസ്‌റ്റാർട്ട് ചെയ്യണോ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ഈ ക്രമീകരണം മാറ്റാൻ നിങ്ങളുടെ ഉപകരണം റീസ്‌റ്റാർട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"റീസ്റ്റാർട്ട് ചെയ്യുക"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"റദ്ദാക്കുക"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"മൊബൈൽ റേഡിയോ പവർ"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"സിം വിലാസ പുസ്‌തകം കാണുക"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"സ്ഥിര ഡയലിംഗ് നമ്പറുകൾ കാണുക"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"സർവീസ് ഡയലിംഗ് നമ്പറുകൾ കാണുക"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS സേവന നില"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS നില"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"രജിസ്റ്റർ ചെയ്‌തു"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"രജിസ്‌റ്റർ ചെയ്‌തിട്ടില്ല"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ലഭ്യമാണ്"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ലഭ്യമല്ല"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS രജിസ്ട്രേഷൻ: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE വഴി ശബ്ദം: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nവൈഫൈ വഴി ശബ്ദം: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nവീഡിയോ കോളിംഗ്: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ഇന്റർഫേസ്: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"സേവനത്തിലാണ്"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"സേവനം ലഭ്യമല്ല"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"അടിയന്തര കോളുകൾ മാത്രം"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"റേഡിയോ ഓഫാണ്"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"റോമിംഗ്"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"റോമിംഗ് അല്ല"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"നിഷ്ക്രിയം"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"റിംഗ് ചെയ്യുന്നു"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"കോൾ പുരോഗതിയിലാണ്"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"വിച്ഛേദിച്ചു"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"കണക്‌റ്റ് ചെയ്യുന്നു"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"കണക്‌റ്റ് ചെയ്‌തു"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"താൽക്കാലികമായി റദ്ദാക്കി"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"അജ്ഞാതം"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ബൈറ്റുകൾ"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"നിലവിലെ ഉപ‌ഐഡി:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ഡിഫോൾട്ട് ഡാറ്റാ സിമ്മിന്റെ ഉപഐഡി:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ബാൻഡ്‌വിത്ത് (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL ബാൻഡ്‍വിത്ത് (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"സെൽ ലൊക്കേഷൻ വിവരങ്ങൾ (അവസാനിപ്പിച്ചു):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ഫിസിക്കൽ ചാനൽ കോൺഫിഗറേഷൻ:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"സെൽ വിവരങ്ങൾ പുതുക്കിയെടുക്കൽ നിരക്ക്:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"എല്ലാ സെൽ അളവ് വിവരങ്ങളും:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ഡാറ്റ സേവനം:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"റോമിംഗ്:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"കോൾ റീഡയറക്‌ട് ചെയ്യുക:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ബൂട്ട് ചെയ്‌തതിന് ശേഷമുള്ള PPP റീസെറ്റ് ചെയ്തതിന്റെ എണ്ണം:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"നിലവിലെ നെറ്റ്‌വർക്ക്:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ലഭിച്ച ഡാറ്റ:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ശബ്ദ സേവനം:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"സിഗ്‌നൽ ശക്തി:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"വോയ്‌സ് കോൾ നില:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"അയച്ച ഡാറ്റ:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"സന്ദേശം കാത്തിരിക്കുന്നു:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ഫോൺ നമ്പർ:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"റേഡിയോ ബാൻഡ് തിരഞ്ഞെടുക്കുക"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"വോയ്സ് നെറ്റ്‌വർക്ക് തരം:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ഡാറ്റ നെറ്റ്‌വർക്ക് തരം:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ഫോൺ സൂചിക തിരഞ്ഞെടുക്കുക"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് തരം സജ്ജീകരിക്കുക:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ഹോസ്റ്റുനാമം(www.google.com) IPv4 പിംഗ് ചെയ്യുക:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ഹോസ്റ്റുനാമം(www.google.com) IPv6 പിംഗ് ചെയ്യുക:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP ക്ലയന്റ് പരിശോധന:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"പിംഗ് പരിശോധന റൺ ചെയ്യുക"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"അപ്ഡേറ്റ് ചെയ്യുക"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"പുതുക്കിയെടുക്കുക"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS പരിശോധന മാറ്റുക"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-നിർദ്ദിഷ്‌ട വിവരം/ക്രമീകരണം"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"റേഡിയോ ബാൻഡ് മോഡ് സജ്ജീകരിക്കുക"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ബാൻഡ് ലിസ്‌റ്റ് ലോഡ് ചെയ്യുന്നു…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"സജ്ജീകരിക്കുക"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"പരാജയപ്പെട്ടു"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"വിജയകരം"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ടാബ്‌ലെറ്റ് വിവരം"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ഫോൺ വിവരം"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"കാരിയർ പ്രൊവിഷനിംഗ് വിവരം"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"കാരിയർ പ്രൊവിഷനിംഗ് തുടങ്ങുക"</string>
 </resources>
diff --git a/res/values-mn/config.xml b/res/values-mn/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-mn/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index e966e06..ab3790c 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Нууцлагдсан дугаар"</string>
     <string name="payphone" msgid="7936735771836716941">"Payphone"</string>
     <string name="onHold" msgid="6132725550015899006">"Хүлээлгэнд"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Мессеж"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Оператор компанийн мессеж"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI код эхэллээ"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD код ажиллаж байна…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI код цуцлагдсан"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Зөвхөн NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Давуу сүлжээний төлөв: WCDMA давуутай"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Давуу сүлжээний төлөв: зөвхөн GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Давуу сүлжээний төлөв: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Давуу сүлжээний төлөв: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Давуу сүлжээний төлөв: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Давуу эрхтэй сүлжээний горим: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Давуу сүлжээний төлөв: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Давуу сүлжээний төлөв: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Хамгийн тохиромжтой горимууд: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Давуу сүлжээний горим: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Давуу сүлжээний төлөв: CDMA/EvDo/GSM/WCDMAj"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Давуу сүлжээний горим: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Давуу эрхтэй сүлжээний горим: зөвхөн NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Давуу эрхтэй сүлжээний горим: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Давуу эрхтэй сүлжээний горим: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Давуу эрхтэй сүлжээний горим: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Давуу эрхтэй сүлжээний горим: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Давуу эрхтэй сүлжээний горим: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Давуу эрхтэй сүлжээний горим: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Давуу эрхтэй сүлжээний горим: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Давуу эрхтэй сүлжээний горим: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Давуу эрхтэй сүлжээний горим: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Давуу эрхтэй сүлжээний горим: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Залгаж байна"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Сүлжээ"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Сайжруулсан 4G LTE горим"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Олон ангилал"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Олон-ангилал идэвхжсэн"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Олон-ангилал идэвхгүйжсэн"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (санал болгосон)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (зөвлөмж болгосон)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (зөвлөмж болгосон)"</string>
     <string name="network_global" msgid="3289646154407617631">"Глобал"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Тогтвортой залгах дугаарыг устгаж байна…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Тогтвортой залгах дугаарыг устгав."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Та буруу PIN оруулсан учир FDN шинэчлэгдсэнгүй."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Дугаар 20 цифрээс хэтэрсэн учир FDN шинэчлэгдээгүй."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Дугаар <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> цифрээс хэтэрсэн тул FDN-г шинэчлээгүй."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN шинэчлэгдсэнгүй. PIN2 буруу байсан, эсхүл утасны дугаар зөвшөөрөгдсөнгүй."</string>
     <string name="fdn_failed" msgid="216592346853420250">"ФДН ажиллуулах амжилтгүй."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM картаас уншиж байна…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Дуудлага хийх боломжгүй. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> нь түргэн тусламжийн дугаар биш байна."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Дуудлага хийх боломжгүй. Түргэн тусламжийн дугаар луу залга."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Яаралтай тусламжийн дуудлага хийх боломжгүй"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Зөвхөн төхөөрөмжийн эзэмшигч ПИН/PUK код оруулах боломжтой."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Цагдаа"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Түргэн тусламж"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Гал"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Шууд мессежлэх (RTT) дуудлага"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Дуудлагын дотор зурвас бичихийг зөвшөөрөх"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT нь дүлий, хатуу чихтэй, хэл ярианы хөгжлийн бэрхшээлтэй, эсвэл хэн нэгний тусламжтай ярьдаг дуудлага хийгчдэд тусладаг.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Дэлгэрэнгүй үзэх&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT дуудлага нь зурвасын сийрүүлэг хэлбэрээр хадгалагдана\n       &lt;br&gt; - RTT нь видео дуудлага хийхэд боломжгүй"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Санамж: RTT (Тухайн агшины текст) роуминг үйлчилгээний үед боломжгүй байна"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY Унтраасан"</item>
     <item msgid="1449091874731375214">"TTY Дүүрэн"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Тийм"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Үгүй"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Алгасах"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Утас яаралтай буцаж холбоо барих горимд байна"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> хүртэл"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Утас <xliff:g id="COUNT_1">%s</xliff:g> минутын турш яаралтай буцаж холбоо барих горимд байх болно.\nТа одоо гарахыг хүсэж байна уу?</item>
+      <item quantity="one">Утас <xliff:g id="COUNT_0">%s</xliff:g> минутын турш яаралтай буцаж холбоо барих горимд байх болно.\nТа одоо гарахыг хүсэж байна уу?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Үйлчилгээ"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Тохиргоо"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Тохируулаагүй&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Дуудлага хаахыг идэвхгүй болгосон"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Нууц үг солих"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Дуудлага хаах нууц үгийг өөрчлөх"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Дуудлага хаах нууц үгийг өөрчлөх боломжгүй."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Дуудлага хаах нууц үгийг өөрчлөх боломжгүй"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Нууц үг таарахгүй байна"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 дугаартай нууц үг оруулна уу"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Нууц үгийг өөрчилсөн"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Нууц үг баталгаажуулах"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Нууц үг оруулна уу"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Дуудлага хаах тохиргоо"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Бүх дуудлага хаах тохиргоог идэвхгүй болгох уу?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Сүлжээ завгүй байна. Та дуудлагаа дараа дахин оролдоно уу."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Сүлжээ ачаалалтай байна. Туслалцаа авахын тулд мобайл оператортойгоо холбогдоно уу."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Дуудлагыг шилжүүлсэн."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>-г ашиглахын тулд SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-д мобайл датаг асаасан эсэхээ шалгана уу. Та үүнийг мобайл сүлжээний тохиргоонд өөрчлөх боломжтой."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>-г ашиглахын тулд SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-д мобайл дата болон дата роуминг асаасан эсэхээ шалгана уу. Та эдгээрийг мобайл сүлжээний тохиргоонд өөрчлөх боломжтой."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Үл хэрэгсэх"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Дата холболтыг идэвхжүүлэх"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Дата холболтыг идэвхгүй болгох"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE хэлбэрт оруулсан"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Видео дуудлагыг бэлтгэсэн"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi дуудлагыг бэлтгэсэн"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence-г бэлтгэсэн"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs Дата"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS-г идэвхжүүлэх"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Төхөөрөмжийг дахин эхлүүлэх үү?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Та энэ тохиргоог өөрчлөхийн тулд төхөөрөмжөө дахин эхлүүлэх шаардлагатай."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Дахин эхлүүлэх"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Цуцлах"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Мобайл радио цахилгаан"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM хаягийн лавлахыг харах"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Залгахаар тохируулсан дугаарыг харах"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Үйлчилгээний залгах дугаарыг харах"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS үйлчилгээний төлөв"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS төлөв"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Бүртгэсэн"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Бүртгээгүй"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Боломжтой"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Боломжгүй"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-н бүртгэл: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE-н дуу оруулалт: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWiFi-н дуу оруулалт: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВидео дуудлага: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT харагдах байдал: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Үйлчилгээнд байгаа"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Үйлчилгээнээс гадуур"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Зөвхөн яаралтай дуудлага"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Радио унтраалттай"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роуминг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Роуминг биш"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Идэвхгүй"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Хонх дуугарч байна"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Дуудлага хийж байна"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Холболт салсан"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Холбогдож байна"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Холбогдсон"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Түр хаасан"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Тодорхойгүй"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"байт"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Одоогийн subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Өгөгдмөл дата SIM-н SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DLзурвасын өргөн (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL Зурвасын өргөн (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Үүрэн байршлын мэдээлэл (цуцалсан):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE Сувгийн бодит тохиргоо:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Үүрэн мэдээлэл сэргээх тариф:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Бүх үүрэн хэмжилтийн мэдээлэл:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Дата үйлчилгээ:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роуминг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Дуудлагыг дахин чиглүүлэх:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Асааснаас хойш дахин шинэчилсэн PPP-н тоо:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Одоогийн сүлжээ:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Хүлээн авсан дата:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Дуут үйлчилгээ:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Дохионы хүч:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Дуут дуудлагын төлөв:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Дата илгээсэн:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Зурвасыг хүлээж байна:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Утасны дугаар:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Радио зурвасыг сонгох"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Дуут сүлжээний төрөл:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Дата сүлжээний төрөл:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Утасны индекс сонгох"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Сонгосон сүлжээний төрлийг тохируулна уу:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Пинг хостны нэр(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Пинг хостны нэр(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP Үйлчлүүлэгчийн тест:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Пинг тестийг ажиллуулах"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Шинэчлэх"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Сэргээх"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS шалгалтыг унтраах/асаах"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-тодорхой Мэдээлэл/Тохиргоо"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Радио зурвасын горимыг тохируулах"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Зурвасын жагсаалтыг ачаалж байна…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Тохируулах"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Амжилтгүй"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Амжилттай"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Таблетын мэдээлэл"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Утасны мэдээлэл"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Оператор компанийн хангалтын мэдээлэл"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Оператор компанийн хангалтыг эхлүүлэх"</string>
 </resources>
diff --git a/res/values-mr/config.xml b/res/values-mr/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-mr/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 0f8c2d2..e1422fc 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"खाजगी नंबर"</string>
     <string name="payphone" msgid="7936735771836716941">"सार्वजनिक फोन"</string>
     <string name="onHold" msgid="6132725550015899006">"होल्ड वर"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> मेसेज"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"वाहक मेसेज"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI कोड प्रारंभ केला"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD कोड चालू…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI कोड रद्द केला"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"फक्त NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"प्राधान्‍यकृत नेटवर्क मोड: WCDMA प्राधान्‍यकृत"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"प्राधान्‍यकृत नेटवर्क मोड: केवळ GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"प्राधान्‍यकृत नेटवर्क मोड: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"प्राधान्‍यकृत नेटवर्क मोड: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"प्राधान्‍यकृत नेटवर्क मोड: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"प्राधान्‍यकृत नेटवर्क प्रकार: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"प्राधान्‍यकृत नेटवर्क मोड: जागतिक"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"प्राधान्‍यकृत नेटवर्क मोड: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"प्राधान्यीकृत नेटवर्क मोड: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"प्राधान्यकृत नेटवर्क मोड: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"प्राधान्यकृत नेटवर्क मोड: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"प्राधान्यकृत नेटवर्क मोड: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"प्राधान्‍यकृत नेटवर्क प्रकार: फक्त NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"प्राधान्‍यकृत नेटवर्क प्रकार: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"प्राधान्‍यकृत नेटवर्क प्रकार: NR/LTE/CDME/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"प्राधान्‍यकृत नेटवर्क प्रकार: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"प्राधान्‍यकृत नेटवर्क प्रकार: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"प्राधान्‍यकृत नेटवर्क प्रकार: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"प्राधान्‍यकृत नेटवर्क प्रकार: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"प्राधान्‍यकृत नेटवर्क प्रकार: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"प्राधान्‍यकृत नेटवर्क प्रकार: LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"प्राधान्‍यकृत नेटवर्क प्रकार: LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"प्राधान्‍यकृत नेटवर्क प्रकार: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"कॉलिंग"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"नेटवर्क"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"वर्धित 4G LTE मोड"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"एकाधिक-वर्गवारी"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"एकाधिक-वर्गवारी सक्षम केली"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"एकाधिक-वर्गवारी अक्षम केली"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (शिफारस केलेले)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (शिफारस केलेले)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (शिफारस केलेले)"</string>
     <string name="network_global" msgid="3289646154407617631">"जागतिक"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"निश्चित डायलिंग नंबर हटवित आहे..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"निश्चित डायलिंग नंबर हटवला."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"तुम्ही चुकीचा पिन टाईप केल्‍याने FDN अपडेट केले नव्‍हते."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN अपडेट केलेले नाही, कारण क्रमांक २० अंकांनी जास्‍त होत आहेत."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN अपडेट केलेले नाही, कारण नंबर <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> अंकांपेक्षा जास्‍त आहेत."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN अपडेट केले नव्‍हते. PIN2 चुकीचा होता किंवा फोन नंबरला नकार दिला."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN कार्य अयशस्‍वी झाले."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"सिक कार्डमधून वाचत आहे..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"कॉल करू शकत नाही. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> हा आणीबाणी नंबर नाहीये."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"कॉल करू शकत नाही. आणीबाणी नंबर डायल करा."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"आणीबाणी कॉलिंग उपलब्‍ध नाही"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"फक्त या डिव्हाइसचा मालक पिन/PUK कोड एंटर करू शकतो."</string>
     <string name="police_type_description" msgid="2819533883972081757">"पोलीस"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"रुग्णवाहिका"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"आग"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"रीअल-टाइम टेक्‍स्‍ट (RTT) कॉल"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"व्‍हॉइस कॉल करताना मेसेजिंग करू शकतो"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT अशा कॉल करणार्‍यांना साहाय्य करते, ज्‍यांना बहिरेपणा आहे, ज्‍यांना कमी ऐकू येते किंवा बोलताना अडखळतात किंवा ज्‍यांना फक्‍त आवाज पुरेसा नसतो.&lt;br&gt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;अधिक जाणून घ्‍या&lt;a&gt;\n       &lt;br/&gt; - RTT cकॉल मेसेज प्रतिलेख म्‍हणून सेव्‍ह केले आहेत\n       &lt;br/&gt; - RTT व्हिडिओ कॉलसाठी उपलब्‍ध नाही"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"टीप: रोमिंगमध्ये RTT उपलब्ध नाही"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY बंद"</item>
     <item msgid="1449091874731375214">"TTY पूर्ण"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"होय"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"नाही"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"डिसमिस करा"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"फोन आणीबाणी कॉलबॅक मोडमध्ये आहे"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> पर्यंत"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">फोन <xliff:g id="COUNT_1">%s</xliff:g> मिनिटे आणीबाणी कॉलबॅक मोडमध्ये राहील.\nतुम्हाला आता बाहेर पडायचे आहे का?</item>
+      <item quantity="one">फोन <xliff:g id="COUNT_0">%s</xliff:g> मिनिट आणीबाणी कॉलबॅक मोडमध्ये राहील.\nतुम्हाला आता बाहेर पडायचे आहे का?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"सेवा"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"सेटअप"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;सेट नाही&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"कॉल बारिंग बंद केले"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"पासवर्ड बदला"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"कॉल बारिंगचा पासवर्ड बदला"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"कॉल बारिंगचा पासवर्ड बदलू शकत नाही."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"कॉल बारिंगचा पासवर्ड बदलू शकत नाही"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"पासवर्ड जुळत नाहीत"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 अंक असलेला एखादा पासवर्ड टाका"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"पासवर्ड बदलला"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"पासवर्ड निश्चित करा"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"पासवर्ड टाका"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"कॉल बारिंग सेटिंग्ज"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"सर्व कॉल बारिंग़ सेटिंग्ज बंद करायच्या का?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"नेटवर्क व्यस्त आहे कृपया तुमचा कॉल नंतर पुन्हा करण्याचा प्रयत्न करा."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"नेटवर्क उपलब्ध नाही. साहाय्यासाठी तुमच्या मोबाइल ऑपरेटरशी संपर्क साधा."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"कॉल वळवला."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> वापरण्यासाठी, सिम <xliff:g id="SIM_NUMBER">%2$d</xliff:g> साठी मोबाइल डेटा सुरू केलेला आहे याची खात्री करा. तुम्ही हे मोबाइल नेटवर्क सेटिंग्जमध्ये बदलू शकता."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> वापरण्यासाठी, सिम <xliff:g id="SIM_NUMBER">%2$d</xliff:g> साठी मोबाइल डेटा आणि डेटा रोमिंग सुरू केलेले आहेत याची खात्री करा. तुम्ही हे मोबाइल नेटवर्क सेटिंग्जमध्ये बदलू शकता."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"डिसमिस करा"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"डेटा कनेक्शन सुरू करा"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"डेटा कनेक्शन बंद करा"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ची सुविधा दिली आहे"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"व्हिडिओ कॉलिंगची सुविधा दिली आहे"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"वायफाय कॉलिंगची सुविधा दिली आहे"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/उपस्थितीची सुविधा दिली आहे"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs डेटा"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS सुरू करा"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"डिव्हाइस रीस्टार्ट करायचे आहे का?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ही सेटिंग बदलण्यासाठी तुम्ही तुमचे डिव्हाइस रीस्टार्ट करणे आवश्यक आहे."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"रीस्टार्ट करा"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"रद्द करा"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"मोबाइल रेडिओ पॉवर"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"सिम ॲड्रेस बुक पाहा"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"निश्चित डायलिंग नंबर पाहा"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"सर्व्हिस डायलिंग नंबर पहा"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS सेवा स्थिती"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS स्थिती"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"नोंदणीकृत"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"नोंदणीकृत नाही"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"उपलब्ध आहे"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"उपलब्ध नाही"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS नोंदणी: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE वरून व्हॉइस: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\n वाय-फाय वरून व्हॉइस: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nव्हिडिओ कॉलिंग: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT इंटरफेस: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"सेवेमध्ये आहे"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"सेवा बंद आहे"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"फक्त आणीबाणी कॉल"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"रेडिओ बंद"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"रोमिंग"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"रोमिंग नाही"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"निष्क्रिय"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"रिंग होत आहे"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"कॉल सुरू आहे"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"डिस्कनेक्ट केले आहे"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"कनेक्ट करत आहे"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"कनेक्ट केले"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"निलंबित केले"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"अज्ञात"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"बाइट"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"सध्याचा subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"डीफॉल्ट डेटा सिम SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL बँडविड्थ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL बँडविड्थ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"सेल स्थान माहिती (कालबाह्य झाली):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE फिजिकल चॅनेल कॉंफिगरेशन:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"सेल माहिती रिफ्रेश रेट:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"सर्व सेल परिमाण माहिती:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"डेटा सर्व्हिस:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"रोमिंग:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"कॉल रीडिरेक्ट करा:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"बूट केल्यापासून PPP रीसेटची संख्या:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"सध्याचे नेटवर्क:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"डेटा मिळाला:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"व्हॉइस सेवा:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"सिग्नल स्ट्रेंथ:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"व्हॉइस कॉल स्थिती:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"डेटा पाठवला:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"मेसेज वेटिंग:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"फोन नंबर:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"रेडिओ बँड निवडा"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"व्हॉइस नेटवर्कचा प्रकार:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"डेटा नेटवर्कचा प्रकार:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"फोनची अनुक्रमणिका निवडा"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"प्राधान्य दिलेला नेटवर्कचा प्रकार सेट करा:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"पिंग होस्ट नाव(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"पिंग होस्ट नाव(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP क्लायंट चाचणी:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"पिंग चाचणी रन करा"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"अपडेट करा"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"रिफ्रेश करा"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS तपासणी टॉगल करा"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-विशिष्ट माहिती/सेटिंग्ज"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"रेडिओ बँड मोड सेट करा"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"बँड सूची लोड करत आहे…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"सेट करा"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"करता आले नाही"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"यशस्वी"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"टॅबलेट माहिती"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"फोनची माहिती"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"वाहक सुविधा माहिती"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"वाहक सुविधा ट्रिगर करा"</string>
 </resources>
diff --git a/res/values-ms/config.xml b/res/values-ms/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ms/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 9c2a8d2..121081f 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Nombor peribadi"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefon Awam"</string>
     <string name="onHold" msgid="6132725550015899006">"Ditunda"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mesej <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mesej Pembawa"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Kod MMI dimulakan"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Kod USSD dijalankan..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Kod MMI dibatalkan"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR sahaja"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Mod rangkaian pilihan: WCDMA diutamakan"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Mod rangkaian pilihan: GSM sahaja"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Mod rangkaian pilihan: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Mod rangkaian pilihan: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Mod rangkaian pilihan: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Mod rangkaian pilihan: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Mod rangkaian pilihan: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Mod rangkaian pilihan: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Mod rangkaian pilihan: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Mod rangkaian pilihan: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Mod rangkaian pilihan: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Mod rangkaian pilihan: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Mod rangkaian pilihan: NR sahaja"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Mod rangkaian pilihan: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Mod rangkaian pilihan: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Mod rangkaian pilihan: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Mod rangkaian pilihan: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Mod rangkaian pilihan: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Mod rangkaian pilihan: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Mod rangkaian pilihan: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Mod rangkaian pilihan: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Mod rangkaian pilihan: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Mod rangkaian pilihan: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Memanggil"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Rangkaian"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Mod 4G LTE Dipertingkat"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Berbilang kategori"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Berbilang kategori didayakan"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Berbilang kategori dilumpuhkan"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (disyorkan)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (disyorkan)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (disyorkan)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Memadamkan nombor dailan tetap..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Nombor dailan tetap dipadamkan."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN tidak dikemaskini kerana anda telah menaip PIN yang salah."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN tidak dikemas kini kerana nombor melebihi 20 digit."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN tidak dikemas kini kerana nombornya melebihi <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digit."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN tidak dikemaskini. PIN2 salah atau nombor telefon telah ditolak."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operasi FDN gagal."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Membaca daripada kad SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Tidak dapat memanggil. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> bukan nombor kecemasan."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Tidak dapat memanggil. Dail nombor kecemasan."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Panggilan kecemasan tidak tersedia"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Hanya pemilik peranti yang boleh memasukkan kod PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polis"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulans"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Bomba"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Panggilan teks masa nyata (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Benarkan pemesejan dalam panggilan suara"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Pemanggil dibantu RTT yang pekak, kurang pendengaran, mengalami kesukaran bertutur atau memerlukan ciri selain suara.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Ketahui lebih lanjut&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Panggilan RTT disimpan sebagai transkrip mesej\n       &lt;br&gt; - RTT tidak tersedia untuk panggilan video"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Nota: RTT tidak tersedia semasa dalam perayauan"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY Dimatikan"</item>
     <item msgid="1449091874731375214">"TTY Penuh"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ya"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Tidak"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ketepikan"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon dalam mod panggil balik kecemasan"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Hingga <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefon akan berada dalam mod panggil balik kecemasan selama <xliff:g id="COUNT_1">%s</xliff:g> minit.\nAdakah anda mahu keluar sekarang?</item>
+      <item quantity="one">Telefon akan berada dalam mod panggil balik kecemasan selama <xliff:g id="COUNT_0">%s</xliff:g> minit.\nAdakah anda mahu keluar sekarang?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Perkhidmatan"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Persediaan"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Tidak ditetapkan&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Sekatan panggilan dinyahaktifkan"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Tukar kata laluan"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Tukar kata laluan sekatan panggilan"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Tidak boleh menukar kata laluan sekatan panggilan."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Tidak boleh menukar kata laluan sekatan panggilan"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Kata laluan tidak sepadan"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Masukkan kata laluan dengan 4 nombor"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Kata laluan ditukar"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Sahkan kata laluan"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Masukkan kata laluan"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Tetapan sekatan panggilan"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Nyahaktifkan semua tetapan sekatan panggilan?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Rangkaian sibuk. Cuba buat panggilan sebentar lagi."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Rangkaian sesak. Hubungi operator mudah alih anda untuk mendapatkan bantuan."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Panggilan dipesongkan."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, pastikan data mudah alih dihidupkan bagi SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Anda boleh menukar tetapan ini dalam tetapan rangkaian mudah alih."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, pastikan data mudah alih dan perayauan data dihidupkan bagi SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Anda boleh menukar tetapan ini dalam tetapan rangkaian mudah alih."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ketepikan"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Dayakan Sambungan Data"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Lumpuhkan Sambungan Data"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE Diperuntukkan"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Panggilan Video Diperuntukkan"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Panggilan Wi-Fi Diperuntukkan"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Kehadiran Diperuntukkan"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Data Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Dayakan DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Mulakan Semula Peranti?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Anda perlu memulakan semula peranti untuk menukar tetapan ini."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Mulakan semula"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Batal"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Kuasa Radio Mudah Alih"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Lihat Buku Alamat SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Lihat Nombor Dailan Tetap"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Lihat Nombor Dailan Perkhidmatan"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status Perkhidmatan IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Status IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Berdaftar"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Tidak Berdaftar"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Tersedia"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Tidak tersedia"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Pendaftaran IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nSuara melalui LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nSuara melalui Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nPanggilan Video: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nAntara Muka UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Berfungsi"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Rosak"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Panggilan Kecemasan Sahaja"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio Dimatikan"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Perayauan"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Tidak Merayau"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Melahu"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Berdering"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Panggilan Sedang Berlangsung"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Diputuskan sambungan"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Menyambung"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Disambungkan"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Digantung"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Tidak diketahui"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"bgksn"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bait"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"SubId semasa:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId SIM data lalai:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Lebar Jalur DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Lebar Jalur UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Maklumat Lokasi Selular (ditamatkan):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurasi Saluran Fizikal LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Kadar Muat Semula Maklumat Selular:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Semua Maklumat Ukuran Selular:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Perkhidmatan Data:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Perayauan:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Pengubahhalaan Panggilan:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Bilangan Tetapan Semula PPP Sejak Proses But:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Rangkaian Semasa:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data Diterima:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Perkhidmatan Suara:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Kekuatan Isyarat:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status Panggilan Suara:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data Dihantar:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mesej Menunggu:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Nombor Telefon:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Pilih Jalur Radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Jenis Rangkaian Suara:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Jenis Rangkaian Data:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Pilih indeks telefon"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Tetapkan Jenis Rangkaian Pilihan:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping Nama Hos(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping Nama Hos(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Ujian Klien HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Jalankan Ujian Ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Kemas kini"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Muat semula"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Togol Semakan DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Maklumat/Tetapan khusus OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Tetapkan Mod Jalur Radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Memuatkan Senarai Jalur…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Tetapkan"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Tidak berjaya"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Berjaya"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Maklumat tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Maklumat telefon"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Maklumat Peruntukan Pembawa"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Cetus Peruntukan Pembawa"</string>
 </resources>
diff --git a/res/values-my/config.xml b/res/values-my/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-my/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index fd4cf00..95eb48b 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"လျို့ဝှက် နံပါတ်"</string>
     <string name="payphone" msgid="7936735771836716941">"ငွေပေးရသည့်ဖုန်း"</string>
     <string name="onHold" msgid="6132725550015899006">"ခဏ ကိုင်ထားစဉ်"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> မက်ဆေ့ဂျ်"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"ဖုန်းလိုင်းဝန်ဆောင်မှု မက်ဆေ့ဂျ်"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMIကုတ်နံပါတ်ကို စတင်ပြီးပါပြီ"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD ကုဒ် လုပ်ဆောင်နေပါသည်…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMIကုတ်နံပါတ်ကို ပယ်ဖျက်ပြီးပါပြီ"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR သီးသန့်"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ပိုမိုကြိုက်သော ကွန်ယက်စနစ်-WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ပိုမိုကြိုက်သော ကွန်ယက်စနစ်-GSM သာ"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ပိုမိုကြိုက်သော ကွန်ယက်အခြေအနေ: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ပိုမိုကြိုက်သော ကွန်ယက်စနစ်- GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ပိုမိုကြိုက်သော ကွန်ယက်စနစ်- CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"ဦးစားပေး ကွန်ရက်စနစ်− LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ပိုမိုကြိုက်သော ကွန်ယက်စနစ်-တစ်ကမ်ဘာလုံးဆိုင်ရာ"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ပိုမိုကြိုက်သော ကွန်ယက်စနစ်- LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ပိုနှစ်သက်သည့် ကွန်ရက်မုဒ်: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်− LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်− TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်− LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"ဦးစားပေး ကွန်ရက်စနစ်− NR သီးသန့်"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"ဦးစားပေး ကွန်ရက်စနစ်− NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"ဦးစားပေး ကွန်ရက်မုဒ်- NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"ခေါ်ဆိုခြင်း"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ကွန်ရက်"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"မြှင့်တင်ထား 4G LTE မုဒ်"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"များစွာသော အမျိုးအစားမျိုး"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"မျိုးစုံသောအတန်းအစားများကို  ရရှိနိုင်သည်"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"မျိုးစုံသောအတန်းအစားများကို ပိတ်ထားသည်"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (အကြံပြုထားသည်)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (အကြံပြုထား)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (အကြုံပြု)"</string>
     <string name="network_global" msgid="3289646154407617631">"တစ်ကမ္ဘာလုံးဆိုင်ရာ"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ခေါ်ဆိုသည့်အခြေစိုက်နံပါတ်အားဖျက်နေသည်"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ပုံသေ ခေါ်ဆိုမှု နံပါတ် ဖျက်ပြီး"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"ပင်နံပါတ် မမှန်သောကြောင့် FDNကို အဆင့်မြှင့်တင်ခြင်းမပြုလုပ်နိုင်ပါ"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"နံပါတ်တွင် ဂဏန်းအလုံး ၂၀ ကျော်နေသဖြင့် FDN ကို အပ်ဒိတ်လုပ်၍ မရပါ။"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"နံပါတ်တွင် ဂဏန်းအလုံးရေ <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ကျော်နေပါသဖြင့် FDN ကို အပ်ဒိတ်လုပ်၍ မရပါ။"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN ပြောင်းလဲမှု မဖြစ်ပါ။ ပင်နံပါတ် ၂ မှားယွင်းခြင်း သို့မဟုတ် ဖုန်းနံပါတ်ကို ငြင်းဖယ်ခံရခြင်း တစ်ခုခုဖြစ်ပါသည်"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN လုပ်ဆောင်ချက် မအောင်မြင်ပါ"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"ဆင်းမ်ကဒ်မှ ဖတ်နေပါသည်..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"မခေါ်ဆိုနိုင်ပါ။ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> က အရေးပေါ်နံပါတ် မဟုတ်ပါ။"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"မခေါ်ဆိုနိုင်ပါ။ အရေးပေါ်ဖုန်းနံပါတ်တစ်ခုကို နှိပ်ပါ။"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"အရေးပေါ် ခေါ်ဆို၍ မရပါ"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"ဤစက်ပစ္စည်း၏ ပိုင်ရှင်ကသာလျှင် ပင်နံပါတ်/ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ်များကို ထည့်နိုင်ပါသည်။"</string>
     <string name="police_type_description" msgid="2819533883972081757">"ရဲ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"လူနာတင်ယာဉ်"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"မီး"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"အချိန်နှင့်တစ်ပြေးညီ စာသား(RTT) ခေါ်ဆိုမှု"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"ဖုန်းပြောနေစဉ် မက်ဆေ့ဂျ်ပို့ခွင့်ပြုပါ"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT သည် နားမကြားသူ၊ နားလေးသူ၊ စကားချို့ယွင်းသူ (သို့) အသံတစ်မျိုးတည်းထက် ပိုမို၍ လိုအပ်သူများကို ကူညီပေးပါသည်။&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ပိုမိုလေ့လာရန်&lt;/a&gt;\n &lt;br&gt;&lt;br&gt; - RTT ခေါ်ဆိုမှုများကို မက်ဆေ့ဂျ်စာသားမှတ်တမ်းအဖြစ် သိမ်းဆည်းပါသည်\n &lt;br&gt; - RTT ကို ဗီဒီယိုခေါ်ဆိုမှုများအတွက် အသုံးမပြုနိုင်ပါ"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"သတိပြုရန် - ပြင်ပကွန်ရက်နှင့် ချိတ်ဆက်ထားစဉ် RTT ကို အသုံးမပြုနိုင်ပါ"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ပိတ်ထားသည်"</item>
     <item msgid="1449091874731375214">"TTY အပြည့်"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"ပယ်ရန်"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ဤဖုန်းသည် အရေးပေါ် ပြန်ခေါ်ရန်မုဒ်တွင် ရှိနေသည်"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> အထိ"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">ဤဖုန်းသည် အရေးပေါ် ပြန်ခေါ်ရန်မုဒ်တွင် <xliff:g id="COUNT_1">%s</xliff:g> မိနစ်ကြာ ရှိနေပါမည်။ \nယခု ထွက်လိုပါသလား။</item>
+      <item quantity="one">ဤဖုန်းသည် အရေးပေါ် ပြန်ခေါ်ရန်မုဒ်တွင် <xliff:g id="COUNT_0">%s</xliff:g> မိနစ်ကြာ ရှိနေပါမည်။ \nယခု ထွက်လိုပါသလား။</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"ဝန်ဆောင်မှု"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"စနစ်သတ်မှတ်ခြင်း"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"သတ်မှတ်မထားပါ"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ခေါ်ဆိုမှုပိတ်ပင်ခြင်းကို ပယ်ဖျက်ပြီးပါပြီ"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"စကားဝှက် ပြောင်းရန်"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"ခေါ်ဆိုမှုပိတ်ပင်သော စကားဝှက်ကို ပြောင်းပါ"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"ခေါ်ဆိုမှုပိတ်ပင်သော စကားဝှက်ကို မပြောင်းနိုင်ပါ။"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"ခေါ်ဆိုမှုပိတ်ပင်သော စကားဝှက်ကို မပြောင်းနိုင်ပါ"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"စကားဝှက်များက ထပ်တူမကျပါ"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"နံပါတ် ၄ လုံးနှင့် စကားဝှက် ထည့်ရန်"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"စကားဝှက်ကို ပြောင်းလိုက်ပါပြီ"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"စကားဝှက်ကို အတည်ပြုရန်"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"စကားဝှက် ထည့်ရန်"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ခေါ်ဆိုမှုပိတ်ပင်သော ဆက်တင်များ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"ခေါ်ဆိုမှုပိတ်ပင်သော  ဆက်တင်အားလုံးကို ပယ်ဖျက်မလား။"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ကွန်ရက် မအားပါ။ ဖုန်းခေါ်ဆိုမှုကို နောက်မှ ထပ်စမ်းကြည့်ပါ။"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ကွန်ရက် ပြည့်ကျပ်နေသည်။ အကူအညီရယူရန် သင်၏ မိုဘိုင်း အော်ပရေတာကို ဆက်သွယ်ပါ။"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"ခေါ်ဆိုမှုကို လွှဲထားပါသည်။"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> အသုံးပြုရန် ဆင်းမ်ကတ် <xliff:g id="SIM_NUMBER">%2$d</xliff:g> အတွက် မိုဘိုင်းဒေတာကို ဖွင့်ထားကြောင်း သေချာပါစေ။ ဤအရာကို မိုဘိုင်းကွန်ရက် ဆက်တင်များတွင် ပြောင်းနိုင်ပါသည်။"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> အသုံးပြုရန် ဆင်းမ်ကတ် <xliff:g id="SIM_NUMBER">%2$d</xliff:g> အတွက် မိုဘိုင်းဒေတာနှင့် ကွန်ရက်ပြင်ပဒေတာ အသုံးပြုခြင်းတို့ကို ဖွင့်ထားကြောင်း သေချာပါစေ။ ဤအရာများကို မိုဘိုင်းကွန်ရက် ဆက်တင်များတွင် ပြောင်းနိုင်ပါသည်။"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"ပယ်ရန်"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ဒေတာချိတ်ဆက်မှုကို ဖွင့်ပါ"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ဒေတာချိတ်ဆက်မှုကို ပိတ်ပါ"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ထောက်ပံ့ထားသည်"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ဗီဒီယိုခေါ်ဆိုမှု ပံ့ပိုးထားပါသည်"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi ဖြင့် ခေါ်ဆိုမှုကို ပံ့ပိုးထားပါသည်"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/လက်ရှိ ထောက်ပံ့ပေးခြင်း"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ဒေတာ"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS ကို ဖွင့်ရန်"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"စက်ကို ပြန်စမလား။"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ဤဆက်တင်ကိုပြောင်းရန် သင့်စက်ကို ပြန်စတင်ရပါမည်။"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ပြန်စရန်"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"မလုပ်တော့ပါ"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"မိုဘိုင်း ရေဒီယိုစွမ်းအား"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM ထဲရှိ လိပ်စာ စာအုပ်ကိုကြည့်ပါ"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ခေါ်ဆိုရန် ကန့်သတ် နံပါတ်ကို ကြည့်မည်"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ခေါ်ဆိုသည့်ဝန်ဆောင်မှုနံပါတ်အားကြည့်မည်"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS ဝန်ဆောင်မှု အခြေအနေ"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS အခြေအနေ"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"မှတ်ပုံတင်ထားသည်"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"မှတ်ပုံတင်ထားခြင်း မရှိပါ"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"အသုံးပြုနိုင်သည်"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"မရနိုင်ပါ"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS မှတ်ပုံတင်ခြင်း− <xliff:g id="STATUS">%1$s</xliff:g>\nLTE ကို အသုံးပြု၍ ခေါ်ဆိုခြင်း − <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWiFi ကို အသုံးပြု၍ ခေါ်ဆိုခြင်း − <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nဗီဒီယို ခေါ်ဆိုမှု − <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT အသုံးပြုမှု အင်တာဖေ့စ် − <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"ဝန်ဆောင်မှုရှိပါသည်"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"ဆက်သွယ်မှုဧရိယာပြင်ပ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"အရေးပေါ်ခေါ်ဆိုမှုများသာ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ရေဒီယို ပိတ်ထားသည်"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ပြင်ပကွန်ရက်သို့ ချိတ်ဆက်ခြင်း"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ပြင်ပကွန်ရက်နှင့် ချိတ်ဆက်မထားပါ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"အလုပ်မလုပ်"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"အသံမြည်နေသည်"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"ခေါ်ဆိုနေဆဲ"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ချိတ်ဆက်မှုပြတ်တောက်သွားသည်"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"ချိတ်ဆက်နေသည်"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"ချိတ်ဆက်ထားသည်"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"ဆိုင်းငံ့ထားသည်"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"မသိရသေးပါ"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ဘိုက်"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"လက်ရှိ Id အခွဲ−"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"မူရင်း ဒေတာဆင်းမ်ကဒ်အတွက် Id အခွဲ −"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL မြန်နှုန်း (kbps)−"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL မြန်နှုန်း (kbps)−"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ဆဲလ်လူလာတည်နေရာ အချက်အလက် (ကန့်ကွက်ထားသည်) −"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ရုပ်ပိုင်းဆိုင်ရာ ချန်နယ်စီစဉ်သတ်မှတ်မှု−"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ဆဲလ်လူလာ အချက်အလက် ရယူမှုနှုန်း −"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ဆဲလ်လူလာတိုင်းတာမှု အချက်အလက် အားလုံး −"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ဒေတာ ဝန်ဆောင်မှု −"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ပြင်ပကွန်ရက်နှင့် ချိတ်ဆက်ခြင်း"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ခေါ်ဆိုမှု လမ်းကြောင်းလွှဲပေးခြင်း −"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"စတင်သည့်အချိန်မှစ၍ PPP ပြန်လည်သတ်မှတ်သည့် အခေါက်ရေ −"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"လက်ရှိ ကွန်ရက် −"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"လက်ခံရရှိထားသော ဒေတာ −"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"အသံဝန်ဆောင်မှု −"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"လိုင်းဆွဲအား −"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"အသံခေါ်ဆိုမှု အခြေအနေ −"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ဒေတာ ပို့လိုက်ပါပြီ −"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"မက်ဆေ့ဂျ်ကို စောင့်နေသည် −"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ဖုန်းနံပါတ် −"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ရေဒီယိုလိုင်း ရွေးချယ်ပါ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"အသံကွန်ရက် အမျိုးအစား −"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ဒေတာကွန်ရက် အမျိုးအစား −"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ဖုန်းအညွှန်း ရွေးရန်"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ပိုနှစ်သက်သည့် ကွန်ရက်အမျိုးအစားကို သတ်မှတ်ပါ −"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ပင်ကို လက်ခံဝန်ဆောင်ပေးသူအမည်(www.google.com) မှာ IPv4 -"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ပင်ကို လက်ခံဝန်ဆောင်ပေးသူအမည် (www.google.com) IPv6 -"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP ကလိုင်းယင့် စမ်းသပ်မှု −"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ပင်စမ်းသပ်ချက် လုပ်ဆောင်ပါ"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC -"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"အပ်ဒိတ်လုပ်ရန်"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ပြန်စရန်"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS စစ်ဆေးမှုခလုတ်ကို နှိပ်ပါ"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"ထုတ်လုပ်သူနှင့် သက်ဆိုင်သော အချက်အလက်/ဆက်တင်များ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ရေဒီယိုလိုင်းမုဒ်အဖြစ် သတ်မှတ်ပါ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ရေဒီယိုလိုင်းစာရင်းကို ဖွင့်နေသည်…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"သတ်မှတ်ရန်"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ပို့၍မရပါ"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"အောင်မြင်ပါသည်"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"တက်ဘလက် အချက်အလက်"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ဖုန်းအချက်အလက်"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ဝန်ဆောင်မှုပေးသူက ပေးထားသည့် အချက်အလက်များ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"အစပျိုးပေးသော ဖုန်းကုမ္ပဏီ ပံ့ပိုးမှု"</string>
 </resources>
diff --git a/res/values-nb/config.xml b/res/values-nb/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-nb/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 32c69d7..6d225ce 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Hemmelig nummer"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefonkiosk"</string>
     <string name="onHold" msgid="6132725550015899006">"Parkert"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>-melding"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operatørmelding"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-kode påbegynt"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-kode kjører…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-kode avbrutt"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Bare NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Foretrukket nettverksmodus: WCDMA foretrekkes"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Foretrukket nettverksmodus: kun GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Foretrukket nettverksmodus: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Foretrukket nettverksmodus: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Foretrukket nettverksmodus: CDMA + LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Foretrukket nettverksmodus: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Foretrukket nettverksmodus: Overordnet"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Foretrukket nettverksmodus: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Foretrukket nettverksmodus: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Foretrukket nettverksmodus: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Foretrukket nettverksmodus: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Foretrukket nettverksmodus: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Foretrukket nettverksmodus: bare NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Foretrukket nettverksmodus: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Foretrukket nettverksmodus: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Foretrukket nettverksmodus: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Foretrukket nettverksmodus: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Foretrukket nettverksmodus: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Foretrukket nettverksmodus: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Foretrukket nettverksmodus: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Foretrukket nettverksmodus: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Foretrukket nettverksmodus: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Foretrukket nettverksmodus: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Anrop"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Nettverk"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Forbedret 4G LTE-modus"</string>
@@ -379,6 +404,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multikategori"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multikategori aktivert"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multikategori deaktivert"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (anbefalt)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (anbefales)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (anbefales)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globalt"</string>
@@ -443,7 +469,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Sletter programmert telefonnummer ..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Programmert telefonnummer er slettet."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN er ikke oppdatert fordi du skrev inn feil PIN-kode."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN ble ikke oppdatert fordi tallet er lengre enn 20 sifre."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN ble ikke oppdatert fordi tallet er lengre enn <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> sifre."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Fast nummer ble ikke oppdatert. PIN2 var feil, eller telefonnummeret ble avvist."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN-handlingen mislyktes."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Leser fra SIM-kort …"</string>
@@ -534,6 +560,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Kan ikke ringe. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> er ikke et nødnummer."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Kan ikke ringe. Ring et nødnummer."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Nødanrop er ikke tilgjengelig"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Det er bare eieren av enheten som kan skrive inn PIN-/PUK-koder."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Politi"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulanse"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Brann"</string>
@@ -561,6 +588,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Sanntidstekst-anrop (STT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Tillat meldingsutveksling i talesamtaler"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"STT er til hjelp for brukere som er døve, tunghørte, har talefunksjonshemning eller trenger mer enn bare tale.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Finn ut mer&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – STT-anrop lagres som meldingstranskripsjoner\n       &lt;br&gt; – STT er ikke tilgjengelig for videoanrop"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Merk: RTT er ikke tilgjengelig ved roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY av"</item>
     <item msgid="1449091874731375214">"TTY full"</item>
@@ -613,6 +641,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nei"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Lukk"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefonen er i modus for tilbakeringing av nødanrop"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Til <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefonen kommer til å være i modus for tilbakeringing av nødanrop i <xliff:g id="COUNT_1">%s</xliff:g> minutter.\nVil du avslutte nå?</item>
+      <item quantity="one">Telefonen kommer til å være i modus for tilbakeringing av nødanrop i <xliff:g id="COUNT_0">%s</xliff:g> minutt.\nVil du avslutte nå?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Tjeneste"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Konfigurering"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ikke angitt&gt;"</string>
@@ -752,7 +786,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Anropsblokkering er deaktivert"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Endre passord"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Endre passord for anropsblokkering"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Kan ikke endre passordet for anropsblokkering."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Kan ikke endre passordet for anropsblokkering"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Passordene stemmer ikke overens"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Skriv inn et passord med fire sifre"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Passordet er endret"</string>
@@ -761,7 +795,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Bekreft passordet"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Skriv inn passordet"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Innstillinger for anropsblokkering"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Vil du deaktivere alle innstillinger for anropsblokkering?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Nettverket er opptatt. Prøv å ringe på nytt senere."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Nettverket er for travelt. Kontakt mobiloperatøren din for å få hjelp."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Anropet er omdirigert."</string>
@@ -791,4 +824,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Før du bruker <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, må du sørge for at mobildata er slått på for SIM-kortet <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Du kan endre dette i mobilnettverksinnstillingene."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Før du bruker <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, må du sørge for at mobildata og data-roaming er slått på for SIM-kortet <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Du kan endre dette i mobilnettverksinnstillingene."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Lukk"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Slå på datatilkobling"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Slå av datatilkobling"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-tildelt"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Identitetshåndtering aktiv for videoanrop"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Identitetshåndtering aktiv for Wi-Fi-anrop"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence er klargjort"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Slå på DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Start enhet på nytt?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Du må starte enheten din på nytt for å endre innstillingen."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Start på nytt"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Avbryt"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Strømforsyning for mobilradio"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Se adressebok for SIM-kort"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vis forhåndsbestemte numre"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vis tjenestenumre"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status for IMS-tjeneste"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrert"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Ikke registrert"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Tilgjengelig"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Utilgjengelig"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-registrering: <xliff:g id="STATUS">%1$s</xliff:g>\nTale over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nTale over Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideoanrop: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-grensesnitt: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Fungerer som normalt"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ute av drift"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Bare nødanrop"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radioen er av"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ingen roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Ledig"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ringer"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Anrop pågår …"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Frakoblet"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Kobler til"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Tilkoblet"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Sperret midlertidig"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Ukjent"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pakker"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"byte"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Nåværende under-ID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Under-ID for standard-SIM-kort for data:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Båndbredde for nedlasting (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Båndbredde for opplasting (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informasjon om celleposisjonen (avviklet):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurering av fysisk LTE-kanal:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Oppdateringsfrekvens for celleinformasjon:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All informasjon for cellemåling:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datatjeneste:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Viderekobling av anrop:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Antall PPP-tilbakestillinger siden oppstart:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Nåværende nettverk:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data mottatt:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Taletjeneste:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signalstyrke:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status på taleanrop:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data sendt:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Melding venter:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonnummer:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Velg radiobånd"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Nettverkstype for tale:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Type datanettverk:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Velg telefonindeks"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Velg foretrukket nettverkstype:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping vertsnavn(www.google.no) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping vertsnavn(www.google.no) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test av HTTP-klient:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Kjør ping-test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Oppdater"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Last inn på nytt"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Slå av/på DNS-sjekk"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Produsentspesfikk informasjon og innstillinger"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Angi båndmodus for radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Laster inn båndlisten …"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Angi"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Mislykket"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Vellykket"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informasjon om nettbrettet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefoninformasjon"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informasjon om operatørhåndtering"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Utløs operatørhåndtering"</string>
 </resources>
diff --git a/res/values-ne/config.xml b/res/values-ne/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ne/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index aeb2592..30ce315 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"निजी नम्बर"</string>
     <string name="payphone" msgid="7936735771836716941">"पेफोन"</string>
     <string name="onHold" msgid="6132725550015899006">"होल्डमा"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> को सन्देश"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"सेवा प्रदायकको सन्देश"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI कोड सुरु भयो"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD कोड चल्दै..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI कोड रद्द गरियो।"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR मात्र"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"रुचाइएको नेटवर्क मोड: WCDMA रुचाइएको"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"रुचाइएको नेटवर्क मोड: GSM मात्र"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"रुचाइएको नेटवर्क मोड: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"रुचाइएको नेटवर्क मोड: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"रुचाइएको नेटवर्क मोड: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"रुचाइएको नेटवर्क मोड: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"रुचाइएको नेटवर्क मोड: विश्वव्यापी"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"रुचाइएको नेटवर्क मोड: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"रुचाइएको सञ्जाल मोड: LTE /GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"रुचाइएको नेटवर्क मोड: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"रुचाइएको नेटवर्क मोड: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"रुचाइएको नेटवर्क मोड: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"रुचाइएको नेटवर्क मोड: NR मात्र"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"रुचाइएको नेटवर्क मोड: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"रुचाइएको नेटवर्क मोड: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"रुचाइएको नेटवर्क मोड: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"रुचाइएको नेटवर्क मोड: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"रुचाइएको नेटवर्क मोड: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"रुचाइएको नेटवर्क मोड: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"रुचाइएको नेटवर्क मोड: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"रुचाइएको नेटवर्क मोड: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"रुचाइएको नेटवर्क मोड: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"रुचाइएको नेटवर्क मोड: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"कल गर्दै"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"नेटवर्क"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Enhanced 4G LTE Mode"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"बहु-श्रेणी"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"बहुप्रकार सक्षम भयो"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"बहु-कोटी अक्षम भयो"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (सिफारिस गरिएको)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (सिफारिस गरिएको)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (सिफारिस गरिएको)"</string>
     <string name="network_global" msgid="3289646154407617631">"विश्वव्यापी"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"स्थिर डायल गर्ने नम्बर मेट्दै..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"स्थिर डायल गर्ने नम्बर मेटियो।"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN अद्यावधिक भएको थिएन किनकि तपाईंले गलत PIN टाइप गर्नुभयो।"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"उक्त सङ्ख्याले २० अङ्कको अधिकतम सीमा नाघेकाले FDN अद्यावधिक गरिएन।"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"उक्त सङ्ख्याले <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> अङ्कको अधिकतम सीमा नाघेकाले FDN अद्यावधिक गरिएन।"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN अद्यावधिक भएको थिएन। PIN2 गलत थियो वा फोन नम्बर अस्वीकार भएको थियो।"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN कार्य बिफल भयो।"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM कार्ड पढ्दै..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"कल गर्न सकिँदैन। <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> आपतकालीन नम्बर होइन।"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"कल गर्न सकिँदैन। आपतकालीन नम्बर डायल गर्नुहोस्।"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"आपतकालीन कल सेवा उपलब्ध छैन"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"यन्त्रका मालिक मात्र PIN/PUK कोडहरू प्रविष्टि गर्न सक्नुहुन्छ।"</string>
     <string name="police_type_description" msgid="2819533883972081757">"प्रहरी"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"एम्बुलेन्स सेवा"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"दमकल सेवा"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"द्रुत पाठ सन्देश (RTT) कल"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"भ्वाइस कलभित्रै सन्देश प्रवाह गर्ने अनुमति दिनुहोस्"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT ले बहिरा, सुन्नमा कठिन हुने, बोल्न नसक्ने र आवाज मात्र नभई कल गर्दा थप कुराहरू चाहिने  मान्छेहरूलाई सहायता गर्छ!&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;थप जान्नुहोस्&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT कलहरूलाई सन्देशसम्बन्धी ट्रान्सक्रिप्टका रूपमा सुरक्षित गरिन्छ\n      &lt;br&gt; - RTT भिडियो कलहरूमा उपलब्ध छैन"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"टिपोट: रोमिङमा हुँदा RTT उपलब्ध हुँदैन"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY बन्द"</item>
     <item msgid="1449091874731375214">"TTY भरी"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"हो"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"होइन"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"खारेज गर्नुहोस्"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"यो फोन आपत्‌कालीन कलब्याक मोडमा छ"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> सम्म"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">यो फोन <xliff:g id="COUNT_1">%s</xliff:g> मिनेटका लागि आपत्‌कालीन कलब्याक मोडमा हुने छ।\nतपाईं अहिले नै बाहिर निस्कन चाहनुहुन्छ?</item>
+      <item quantity="one">यो फोन <xliff:g id="COUNT_0">%s</xliff:g> मिनेटका लागि आपत्‌कालीन कलब्याक मोडमा हुने छ।\nतपाईं अहिले नै बाहिर निस्कन चाहनुहुन्छ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"सेवा"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"सेटअप"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"सेट गरेको छैन"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"कल ब्यारिङ निष्क्रिय पारियो"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"पासवर्ड परिवर्तन गर्नुहोस्‌"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"कल ब्यारिङको पासवर्ड परिवर्तन गर्नुहोस्"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"कल ब्यारिङको पासवर्ड परिवर्तन गर्न सकिएन।"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"कल ब्यारिङको पासवर्ड परिवर्तन गर्न सकिँदैन"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"पासवर्डहरू मेल खाँदैनन्"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"कुनै ४ अङ्कको पासवर्ड प्रविष्टि गर्नुहोस्"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"पासवर्ड परिवर्तन गरियो"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"पासवर्ड निश्चित गर्नुहोस्"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"पासवर्ड प्रविष्टि गर्नुहोस्"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"कल ब्यारिङसम्बन्धी सेटिङहरू"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"कल ब्यारिङसम्बन्धी सबै सेटिङहरू निष्क्रिय पार्ने हो?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"नेटवर्क व्यस्त छ। कृपया पछि फेरि कल गरी हेर्नुहोस्।"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"नेटवर्कका पर्याप्त स्रोतहरू छैनन्। सहायताका लागि आफ्नो मोबाइल अपरेटरसँग सम्पर्क गर्नुहोस्।"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"कल अर्को नम्बरमा स्थानान्तरण गरियो।"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> प्रयोग गर्न SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> मा मोबाइल डेटा सक्रिय गरिएको कुरा सुनिश्चित गर्नुहोस्। तपाईं मोबाइल नेटवर्कका सेटिङहरूमा गई यसलाई बदल्न सक्नुहुन्छ।"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> प्रयोग गर्न SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> मा मोबाइल डेटा र डेटा रोमिङ सक्रिय गरिएको कुरा सुनिश्चित गर्नुहोस्। तपाईं मोबाइल नेटवर्कका सेटिङहरूमा गई यी कुराहरू बदल्न सक्नुहुन्छ।"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"खारेज गर्नुहोस्"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"डेटा जडान सक्षम पार्नुहोस्"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"डेटा जडानलाई असक्षम पार्नुहोस्"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE को प्रावधान सक्रिय गरिएको छ"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"भिडियो कलिङसम्बन्धी प्रावधानलाई सक्रिय गरिएको छ"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi कलिङसम्बन्धी प्रावधानलाई सक्रिय गरिएको छ"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/उपस्थितिको प्रावधानलाई सक्रिय गरिएको छ"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs डेटा"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS सक्षम पार्नुहोस्"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"यन्त्र पुनः सुरु गर्ने हो?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"यो सेटिङ परिवर्तन गर्न तपाईंले आफ्नो यन्त्र पुनः सुरु गर्नु पर्छ।"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"पुनः सुरु गर्नुहोस्"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"रद्द गर्नुहोस्"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"मोबाइल रेडियोको पावर"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM को ठेगाना पुस्तिका हेर्नुहोस्"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"स्थिर डायल गर्ने नम्बरहरू हेर्नुहोस्"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"सेवामा डायल गर्ने नम्बरहरू हेर्नुहोस्"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS सेवाको स्थिति"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS को स्थिति"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"दर्ता गरियो"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"दर्ता नगरिएको"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"उपलब्ध छ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"उपलब्ध छैन"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS को दर्ता: <xliff:g id="STATUS">%1$s</xliff:g>\nभ्वाइस ओभर LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nभ्वाइस ओभर WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nभिडियो कलिङ: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT को इन्टरफेस: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"सेवामा"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"सेवा उपलब्ध छैन"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"आपतकालीन कल मात्र"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"रेडियो निष्क्रिय छ"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"रोमिङ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"रोमिङमा छैन"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"निष्क्रिय"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"घन्टी बज्दै छ"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"कल जारी छ"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"विच्छेद गरियो"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"जोडिँदै"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"जडान गरियो"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"निलम्बित"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"अज्ञात"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"बाइटहरू"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"हालको subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"पूर्वनिर्धारित डेटा SIM को SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ब्यान्डविथ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL व्यान्डविथ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"सेलको स्थानबारे जानकारी (चल्तीबाट हटाइएको):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE को भौतिक च्यानलको कन्फिगरेसन:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"सेलसम्बन्धी जानकारीलाई पुनः ताजा गरिने दर:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"सेलको मापनसम्बन्धी सबै जानकारी:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"डेटा सम्बन्धी सेवा:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"रोमिङ:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"कल रिडिरेक्ट:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"बुट गरेदेखि PPP रिसेट गरिएको संख्या:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"हालको नेटवर्क:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"प्राप्त गरिएको डेटा:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Voice सम्बन्धी सेवा:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"सिग्नलको क्षमता:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Voice कलको स्थिति:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"डेटा पठाइयो:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"सन्देशलाई कुर्दै:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"फोन नम्बर:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"रेडियोको ब्यान्ड चयन गर्नुहोस्"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Voice नेटवर्कको प्रकार:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"डेटा नेटवर्कको प्रकार:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"फोनको सूचक चयन गर्नुहोस्"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"रुचाइएको नेटवर्कको प्रकार सेट गर्नुहोस्:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"होस्टनाम (www.google.com) IPv4 मा पिङ गर्नुहोस्:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"होस्टनाम (www.google.com) IPv6 पिङ गर्नुहोस्:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP क्लाइन्टको परीक्षण:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"पिङसम्बन्धी परीक्षण सञ्चालन गर्नुहोस्"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"अद्यावधिक गर्नुहोस्"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"पुनः ताजा गर्नुहोस्"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS को जाँचलाई टगल गर्नुहोस्"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-विशिष्ट जानकारी/सेटिङ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"रेडियोको ब्यान्डसम्बन्धी मोडलाई सेट गर्नुहोस्"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ब्यान्डको सूची लोड गर्दै…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"सेट गर्नुहोस्"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"असफल"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"सफल"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ट्याब्लेटको जानकारी"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"फोनसम्बन्धी जानकारी"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"सेवा प्रदायकको प्रावधानसम्बन्धी जानकारी"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"सेवा प्रदायकको प्रावधानलाई ट्रिगर गर्नुहोस्"</string>
 </resources>
diff --git a/res/values-night/styles.xml b/res/values-night/styles.xml
index fa5c8a1..f7d831b 100644
--- a/res/values-night/styles.xml
+++ b/res/values-night/styles.xml
@@ -27,31 +27,31 @@
         <item name="android:dialogTheme">@style/DialerAlertDialogTheme</item>
     </style>
 
-    <style name="EmergencyInfoNameTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="EmergencyInfoNameTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@android:color/white</item>
         <item name="android:textSize">@dimen/emergency_info_name_text_size</item>
     </style>
 
-    <style name="EmergencyInfoHintTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="EmergencyInfoHintTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@color/white_70_percent</item>
         <item name="android:textSize">@dimen/emergency_info_hint_text_size</item>
     </style>
 
-    <style name="EmergencyInfoTapHintTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="EmergencyInfoTapHintTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@android:color/white</item>
         <item name="android:textSize">@dimen/emergency_info_tap_hint_text_size</item>
     </style>
 
-    <style name="ShortcutViewHintTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="ShortcutViewHintTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@android:color/white</item>
     </style>
 
-    <style name="PhoneNumberTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="PhoneNumberTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@android:color/white</item>
         <item name="android:textSize">@dimen/emergency_shortcut_number_text_size</item>
     </style>
@@ -62,8 +62,8 @@
         <item name="android:textSize">@dimen/emergency_shortcut_type_text_size</item>
     </style>
 
-    <style name="PhoneNumberTapHintAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="PhoneNumberTapHintAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@android:color/white</item>
         <item name="android:textSize">@dimen/emergency_shortcut_tap_hint_text_size</item>
     </style>
diff --git a/res/values-nl/config.xml b/res/values-nl/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-nl/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 5459c85..7bb79d2 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privénummer"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefooncel"</string>
     <string name="onHold" msgid="6132725550015899006">"In de wacht"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Bericht van <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Bericht van provider"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-code gestart"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-code uitvoeren..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-code geannuleerd"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Alleen NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Voorkeursnetwerkmodus: voorkeur voor WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Voorkeursnetwerkmodus: alleen GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Voorkeursnetwerkmodus: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Voorkeursnetwerkmodus: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Voorkeursnetwerkmodus: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Voorkeursnetwerkmodus: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Voorkeursnetwerkmodus: Wereldwijd"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Voorkeursnetwerkmodus: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Voorkeursmodus voor netwerk: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Voorkeursnetwerkmodus: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Voorkeursnetwerkmodus: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Voorkeursnetwerkmodus: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Voorkeursnetwerkmodus: alleen NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Voorkeursnetwerkmodus: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Voorkeursnetwerkmodus: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Voorkeursnetwerkmodus: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Voorkeursnetwerkmodus: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Voorkeursnetwerkmodus: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Voorkeursnetwerkmodus: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Voorkeursnetwerkmodus: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Voorkeursnetwerkmodus: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Voorkeursnetwerkmodus: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Voorkeursnetwerkmodus: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Bellen"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Netwerk"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Geoptimaliseerde 4G LTE-modus"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Meerdere categorieën"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Meerdere categorieën ingeschakeld"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Meerdere categorieën uitgeschakeld"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (aanbevolen)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (aanbevolen)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (aanbevolen)"</string>
     <string name="network_global" msgid="3289646154407617631">"Algemeen"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Vast nummer verwijderen..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Vast nummer verwijderd."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN is niet bijgewerkt omdat je een onjuiste pincode hebt ingevoerd."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN is niet geüpdatet omdat het nummer langer is dan twintig tekens."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN is niet geüpdatet omdat het nummer langer is dan <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> tekens."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN is niet bijgewerkt. De PIN2 was onjuist of het telefoonnummer is geweigerd."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN-bewerking mislukt."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lezen vanaf simkaart..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Kan niet bellen. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is geen alarmnummer."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Bellen niet mogelijk. Bel een alarmnummer."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Noodoproepen niet beschikbaar"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Alleen de eigenaar van het apparaat kan pin-/pukcodes invoeren."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Politie"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Brand"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Realtime tekstoproep (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Berichten in een audiogesprek toestaan"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT helpt bellers die doof of slechthorend zijn, een spraakbeperking hebben of meer dan alleen een stem nodig hebben.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Meer informatie&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT-gesprekken worden opgeslagen als berichttranscript.\n       &lt;br&gt; - RTT is niet beschikbaar voor videogesprekken"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Let op: RTT is niet beschikbaar tijdens roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY uit"</item>
     <item msgid="1449091874731375214">"TTY vol"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nee"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Negeren"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"De modus voor noodoproepen is geactiveerd voor de telefoon"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Tot <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">De telefoon blijft <xliff:g id="COUNT_1">%s</xliff:g> minuten in de modus voor noodoproepen.\nWil je nu afsluiten?</item>
+      <item quantity="one">De telefoon blijft <xliff:g id="COUNT_0">%s</xliff:g> minuut in de modus voor noodoproepen.\nWil je nu afsluiten?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Service"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Instellen"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Niet ingesteld&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Blokkering van gesprekken gedeactiveerd"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Wachtwoord wijzigen"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Wachtwoord voor blokkering van gesprekken wijzigen"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Wachtwoord voor blokkering van gesprekken kan niet worden gewijzigd."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Wachtwoord voor blokkering van gesprekken kan niet worden gewijzigd"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"De wachtwoorden komen niet overeen"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Geef een wachtwoord van vier cijfers op"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Wachtwoord gewijzigd"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Wachtwoord bevestigen"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Wachtwoord invoeren"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Blokkeerinstellingen voor gesprekken"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Alle blokkeerinstellingen voor gesprekken deactiveren?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Netwerk is bezet. Probeer je gesprek later opnieuw uit te voeren."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Het netwerk is overbelast. Neem contact op met je mobiele provider voor hulp."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Gesprek doorgeschakeld naar ander nummer."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Als je <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> wilt gebruiken, zorg je dat je mobiele data hebt ingeschakeld voor sim <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Je kunt dit wijzigen via de mobiele netwerkinstellingen."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Als je <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> wilt gebruiken, zorg je dat je mobiele data en dataroaming hebt ingeschakeld voor sim <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Je kunt dit wijzigen via de mobiele netwerkinstellingen."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Sluiten"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Dataverbinding inschakelen"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Dataverbinding uitschakelen"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-registratie"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videogesprekken geregistreerd"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi-gesprekken geregistreerd"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/aanwezigheid geregistreerd"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-gegevens"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS inschakelen"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Apparaat opnieuw opstarten?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Start het apparaat opnieuw op om de instelling te wijzigen."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Opnieuw opstarten"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annuleren"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobiel radiovermogen"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Adresboek op simkaart weergeven"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vaste nummers weergeven"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Servicenummers weergeven"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-servicestatus"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Geregistreerd"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Niet geregistreerd"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Beschikbaar"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Niet beschikbaar"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-registratie: <xliff:g id="STATUS">%1$s</xliff:g>\nBellen via LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nBellen via wifi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideogesprekken: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-interface: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In gebruik"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Niet in gebruik"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Alleen noodoproepen"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio uit"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Geen roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactief"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Telefoon gaat over"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Actief gesprek"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Verbinding verbroken"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Verbinding maken"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Verbonden"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Opgeschort"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Onbekend"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pakketten"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Huidige subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId van standaard simkaart voor data:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-bandbreedte (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-bandbreedte (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobiele locatiegegevens (beëindigd):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fysieke LTE-kanaalconfiguratie:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Vernieuwingsfrequentie van mobiele data:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alle mobiele meetgegevens:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Gegevensservice:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Gesprek omleiden:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Aantal PPP-resets sinds opstarten:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Huidig netwerk:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Ontvangen gegevens:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Spraakservice:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signaalsterkte:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status van audiogesprek:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Gegevens verzonden:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Wachtend bericht:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefoonnummer:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Radioband selecteren"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Type spraaknetwerk:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Type gegevensnetwerk:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Telefoonindex selecteren"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Voorkeursnetwerktype instellen:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"IPv4 van hostnaam (www.google.com) pingen:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"IPv6 van hostnaam (www.google.com) pingen:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-client testen:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Pingtest uitvoeren"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Updaten"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Vernieuwen"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS-controle in-/uitschakelen"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specifieke gegevens/instellingen"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Modus voor radioband instellen"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Bandlijst laden…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Instellen"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Mislukt"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Geslaagd"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tabletinformatie"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefooninformatie"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Gegevens voor providerregistratie"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Providerregistratie activeren"</string>
 </resources>
diff --git a/res/values-or/config.xml b/res/values-or/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-or/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 248549d..bfd6047 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ବ୍ୟକ୍ତିଗତ ନମ୍ବର୍"</string>
     <string name="payphone" msgid="7936735771836716941">"ପେ-ଫୋନ୍"</string>
     <string name="onHold" msgid="6132725550015899006">"ହୋଲ୍ଡରେ ଅଛି"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> ମେସେଜ୍"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"ବାହକ ମେସେଜ୍"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI କୋଡ୍‌କୁ ଆରମ୍ଭ କରାଯାଇଛି"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD କୋଡ୍ ରନ୍ କରୁଛି…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI କୋଡ୍‌କୁ କ୍ୟାନ୍ସଲ୍ କରାଯାଇଛି"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"କେବଳ NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: WCDMAକୁ ପସନ୍ଦ କରାଯାଇଛି"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: କେବଳ GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: ଗ୍ଲୋବାଲ୍"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: କେବଳ NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR/LTE/CDME/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"କଲ୍ କରାଯାଉଛି"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ନେଟ୍‌ୱର୍କ"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"ଉନ୍ନତ 4G LTE ମୋଡ୍‍"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ବିବିଧ ଶ୍ରେଣୀ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"ବିବିଧ ଶ୍ରେଣୀକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ବିବିଧ ଶ୍ରେଣୀକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ସୁପାରିଶ କରାଯାଇଛି)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ପ୍ରସ୍ତାବିତ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (ପ୍ରସ୍ତାବିତ)"</string>
     <string name="network_global" msgid="3289646154407617631">"ଗ୍ଲୋବାଲ୍"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍‌ ଡିଲିଟ୍ ହେଉଛି…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍‌କୁ ଡିଲିଟ୍ କରାଗଲା।"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN ଅପଡେଟ୍ ହେଲା ନାହିଁ କାରଣ ଆପଣ ଗୋଟିଏ ଭୁଲ୍ PIN ଟାଇପ୍ କରିଥିଲେ।"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN ଅପଡେଟ୍ ହେଲା ନାହିଁ କାରଣ ନମ୍ବର୍ 20ଟି ସଂଖ୍ୟାରୁ ଅଧିକ ଅଛି।"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"ନମ୍ବରରେ <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>ଟିରୁ ଅଧିକ ଅଙ୍କ ଥିବା ଯୋଗୁଁ FDN ଅପ୍‌ଡେଟ୍ କରାଯାଇନଥିଲା।"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN ଅପଡେଟ୍ ହୋ‌ଇନଥିଲା। PIN2 ଭୁଲ୍ ଥିଲା କିମ୍ବା ଫୋନ୍ ନମ୍ବର୍‌କୁ ଗ୍ରହଣ କରାଗଲା ନାହିଁ।"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN ଅପରେଶନ୍ ବିଫଳ ହେଲା।"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM କାର୍ଡରୁ ପଢ଼ାଯାଉଛି…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"କଲ୍ କରିପାରିବେ ନାହିଁ। <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ଗୋଟିଏ ଜରୁରିକାଳୀନ ନମ୍ବର୍ ନୁହେଁ।"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"କଲ୍ କରିପାରିବେ ନାହିଁ। ଗୋଟିଏ ଜରୁରିକାଳୀନ ନମ୍ବର୍ ଡାଏଲ୍ କରନ୍ତୁ।"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"ଜରୁରିକାଳୀନ କଲ୍ କରିବା ଉପଲବ୍ଧ ନାହିଁ"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"ଡିଭାଇସ୍‍ର ମାଲିକ କେବଳ PIN/PUK କୋଡ୍ ଲେଖିପାରିବେ।"</string>
     <string name="police_type_description" msgid="2819533883972081757">"ପୋଲିସ୍‍"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ଆମ୍ବୁଲେନ୍ସ"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"ନିଆଁ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"ରିଅଲ୍-ଟାଇମ୍ ଟେକ୍ସଟ୍ (RTT) କଲ୍"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"ଭଏସ୍ କଲ୍ କରିବା ମଧ୍ୟରେ ମେସେଜ୍ କରିବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT ସେହି କଲର୍‌ମାନଙ୍କୁ ସହାୟତା କରିଥାଏ, ଯେଉଁମାନେ ବଧିର, କ୍ଷୀଣ ଶ୍ରବଣଶକ୍ତି, ମୂକ କିମ୍ବା ଭଏସ୍ ଅପେକ୍ଷା ଅଧିକ କିଛି ଆବଶ୍ୟକ କରନ୍ତି। &lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ଅଧିକ ଜାଣନ୍ତୁ&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - ମେସେଜ୍ ଟ୍ରାନସ୍କ୍ରିପ୍ଟ ଭାବେ RTT କଲ୍ ସେଭ୍ ହୋ‌ଇଛି\n       &lt;br&gt; - ଭିଡିଓ କଲ୍ ପାଇଁ RTT ଉପଲବ୍ଧ ନାହିଁ"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ଧ୍ୟାନ ଦିଅନ୍ତୁ: ରୋମିଂ ସମୟରେ RTT ଉପଲବ୍ଧ ନୁହେଁ"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ବନ୍ଦ ଅଛି"</item>
     <item msgid="1449091874731375214">"TTY ପୂର୍ଣ୍ଣ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ହଁ"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"ନାହିଁ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"ଖାରଜ କରନ୍ତୁ"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ଫୋନଟି ଜରୁରୀକାଳୀନ କଲବ୍ୟାକ୍ ମୋଡରେ ଅଛି"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> ପର୍ଯ୍ୟନ୍ତ"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">ଫୋନଟି <xliff:g id="COUNT_1">%s</xliff:g> ମିନିଟ୍ ପାଇଁ ଜରୁରୀକାଳୀନ କଲବ୍ୟାକ୍ ମୋଡରେ ରହିବ।\nଆପଣ ବର୍ତ୍ତମାନ ବାହାରି ଯିବାକୁ ଚାହାଁନ୍ତି କି?</item>
+      <item quantity="one">ଫୋନଟି <xliff:g id="COUNT_0">%s</xliff:g> ମିନିଟ୍ ପାଇଁ ଜରୁରୀକାଳୀନ କଲବ୍ୟାକ୍ ମୋଡରେ ରହିବ।\nଆପଣ ବର୍ତ୍ତମାନ ବାହାରି ଯିବାକୁ ଚାହାଁନ୍ତି କି?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"ସେବା"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"ସେଟଅପ୍ କରନ୍ତୁ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;ସେଟ୍ ହୋ‌ଇନାହିଁ&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ସମସ୍ତ କଲ୍ ରୋକିବା ନିଷ୍କ୍ରିୟ ହୋ‌ଇଯାଇଛି"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"ପାସ୍‌ୱର୍ଡ ବଦଳାନ୍ତୁ"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"କଲ୍ ରୋକିବା ପାସ୍‌ୱର୍ଡକୁ ବଦଳାନ୍ତୁ"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"କଲ୍ ରୋକିବା ପାସ୍‌ୱର୍ଡକୁ ବଦଳାଯାଇପାରିବ ନାହିଁ।"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"କଲ୍ ବାରିଂ ପାସ୍‌ୱାର୍ଡକୁ ବଦଳା ଯାଇପାରିବ ନାହିଁ"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"ପାସ୍‌ୱର୍ଡ ମେଳ ହେଉ ନାହିଁ"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 ଅଙ୍କ ବିଶିଷ୍ଟ ଗୋଟିଏ ପାସ୍‌ୱର୍ଡ ପ୍ରବେଶ କରନ୍ତୁ"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"ପାସ୍‌ୱର୍ଡ ବଦଳାଯାଇଛି"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"ପାସ୍‌ୱର୍ଡ ସୁନିଶ୍ଚିତ କରନ୍ତୁ"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"ପାସ୍‌ୱର୍ଡ ପ୍ରବେଶ କରନ୍ତୁ"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"କଲ୍ ରୋକିବା ସେଟିଙ୍ଗ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"ସମସ୍ତ କଲ୍ ରୋକିବା ସେଟିଙ୍ଗକୁ ନିଷ୍କ୍ରିୟ କରିବେ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ନେଟ୍‌ୱର୍କ ବ୍ୟସ୍ତ ଅଛି। ଦୟାକରି ଆପଣ ପରେ ପୁଣି କଲ୍‌ ଚେଷ୍ଟା କରିବା ପାଇଁ ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ନେଟ୍‌ୱର୍କ ବ୍ୟସ୍ତ ଅଛି। ସହାୟତା ପାଇଁ ଆପଣଙ୍କର ମୋବାଇଲ୍ ଅପରେଟର୍‍ଙ୍କୁ ଯୋଗାଯୋଗ କରନ୍ତୁ।"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"କଲ୍ ଅନ୍ୟ ପାଖକୁ ଯିବା ବଦଳରେ ନିଜ ପାଖକୁ ଆସିଯାଇଛି।"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ବ୍ୟବହାର କରିବାକୁ, ସିମ୍ <xliff:g id="SIM_NUMBER">%2$d</xliff:g>ରେ ମୋବାଇଲ୍ ଡାଟା ଚାଲୁ ଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ। ଆପଣ ଏହାକୁ ମୋବାଇଲ୍ ନେଟ୍‌ୱର୍କ ସେଟିଂସ୍‌ରେ ବଦଳାଇପାରିବେ।"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ବ୍ୟବହାର କରିବାକୁ, ସିମ୍ <xliff:g id="SIM_NUMBER">%2$d</xliff:g>ରେ ମୋବାଇଲ୍ ଡାଟା ଏବଂ ଡାଟା ରୋମିଂ ଚାଲୁ ଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ। ଆପଣ ଏହାକୁ ମୋବାଇଲ୍ ନେଟ୍‌ୱର୍କ ସେଟିଂସ୍‌ରେ ବଦଳାଇପାରିବେ।"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"ଖାରଜ କରନ୍ତୁ"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ଡାଟା ସଂଯୋଗ ସକ୍ରିୟ କରନ୍ତୁ"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ଡାଟା ସଂଯୋଗ ଅକ୍ଷମ ହୋଇଛି"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ପ୍ରାବଧାନ କରାଯାଇଛି"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ଭିଡିଓ କଲିଂ ପ୍ରାବଧାନ କରାଯାଇଛି"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi କଲିଂ ପ୍ରାବଧାନ କରାଯାଇଛି"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/ଉପସ୍ଥିତି ପ୍ରାବଧାନ କରାଯାଇଛି"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ଡାଟା"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS ସକ୍ଷମ କରନ୍ତୁ"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ଡିଭାଇସ୍ ରିଷ୍ଟାର୍ଟ କରିବେ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ଏହି ସେଟିଂ ବଦଳାଇବାକୁ ଆପଣଙ୍କୁ ଆପଣଙ୍କର ଡିଭାଇସ୍ ରିଷ୍ଟାର୍ଟ କରିବାକୁ ହେବ।"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ବାତିଲ୍ କରନ୍ତୁ"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"ମୋବାଇଲ୍ ରେଡିଓ ପାୱାର୍"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ସିମ୍‌ରେ ଥିବା ଠିକଣା ପୁସ୍ତକ ଦେଖନ୍ତୁ"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ସ୍ଥାୟୀ ଡାଏଲିଂ ନମ୍ୱରଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ସର୍ଭିସ୍ ଡାଏଲିଂ ନମ୍ୱରଗୁଡ଼ିକ ଦେଖନ୍ତୁ"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS ସେବା ସ୍ଥିତି"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS ସ୍ଥିତି"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ରେଜିଷ୍ଟ୍ରେସନ୍ ହୋଇଛି"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"ରେଜିଷ୍ଟ୍ରେସନ୍ ହୋଇ ନାହିଁ"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ଉପଲବ୍ଧ ଅଛି"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ଉପଲବ୍ଧ ନାହିଁ"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS ରେଜିଷ୍ଟ୍ରସନ୍: <xliff:g id="STATUS">%1$s</xliff:g>\nଭଏସ୍ ଓଭର୍ LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nଭଏସ୍ ଓଭର୍ ୱାଇ-ଫାଇ: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nଭିଡିଓ କଲିଙ୍ଗ: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ଇଣ୍ଟର୍‌ଫେସ୍: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"ସେବାରେ ଅଛି"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"ଏବେ କାମ କରୁନାହିଁ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"କେବଳ ଜରୁରୀକାଳୀନ କଲ୍"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ରେଡିଓ ବନ୍ଦ କରନ୍ତୁ"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ରୋମିଂ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ରୋମିଂରେ ନାହିଁ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"ନିଷ୍କ୍ରିୟ"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"ରିଂ ହେଉଛି"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"କଲ୍ ଚାଲୁଛି"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ବିଚ୍ଛିନ୍ନ କରାଯାଇଛି"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"ସଂଯୋଗ କରାଯାଉଛି"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"ସଂଯୋଗ କରାଯାଇଛି"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"ନିଲମ୍ବନ କରାଯାଇଛି"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"ଅଜଣା"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"ପ୍ୟାକେଟ୍"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ବାଇଟ୍ସ"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ବର୍ତ୍ତମାନର subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ଡିଫଲ୍ଟ ଡାଟା SIMର SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ବ୍ୟାଣ୍ଡୱିଡଥ୍ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL ବ୍ୟାଣ୍ଡୱିଡଥ୍ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ସେଲ୍ ଲୋକେସନ୍ ସୂଚନା (ଅନୁରୋଧ କରାଯାଇଛି):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ଫିଜିକାଲ୍ ଚ୍ୟାନେଲ୍ କନ୍‌ଫିଗରେସନ୍:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ସେଲ୍ ସୂଚନା ରିଫ୍ରେସ୍ ଦର:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ସମସ୍ତ ସେଲ୍ ପରିମାପ ସୂଚନା:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ଡାଟା ସେବା:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ରୋମିଂ:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"କଲ୍ ରିଡାଇରେକ୍ଟ:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ବୁଟ୍ ପରଠାରୁ PPP ରିସେଟ୍‌ର ସଂଖ୍ୟା:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"ବର୍ତ୍ତମାନର ନେଟ୍‌ୱାର୍କ:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ଡାଟା ପ୍ରାପ୍ତ ହୋଇଛି:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ଭଏସ୍ ସେବା:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"ସିଗ୍‌ନାଲ୍ ଶକ୍ତି:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ଭଏସ୍ କଲ୍ ସ୍ଥିତି:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ଡାଟା ପଠାଯାଇଛି:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"ବାର୍ତ୍ତା ଅପକ୍ଷାରତ:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ଫୋନ୍ ନମ୍ଵର"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ରେଡିଓ ବ୍ୟାଣ୍ଡ ଚୟନ କରନ୍ତୁ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ଭଏସ୍ ନେଟ୍‌ୱାର୍କ ପ୍ରକାର:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ଡାଟା ନେଟ୍‌ୱାର୍କର ପ୍ରକାର:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ଫୋନ୍ ଇଣ୍ଡେକ୍ସ ବାଛନ୍ତୁ"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ପ୍ରକାର ସେଟ୍‌ କରନ୍ତୁ:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ହୋଷ୍ଟନାମ (www.google.com) IPv4 ପିଙ୍ଗ କରନ୍ତୁ:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ହୋଷ୍ଟନାମ (www.google.com) IP6 ପିଙ୍ଗ କରନ୍ତୁ:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP କ୍ଲାଏଣ୍ଟ ଟେଷ୍ଟ:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ପିଂ ଟେଷ୍ଟ ଚଲାନ୍ତୁ"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"ଅପ୍‌ଡେଟ୍ କରନ୍ତୁ"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ରିଫ୍ରେସ୍ କରନ୍ତୁ"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS ଯାଞ୍ଚ ଟୋଗଲ୍ କରନ୍ତୁ"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-ନିର୍ଦ୍ଦିଷ୍ଟ ସୂଚନା/ସେଟିଂସ୍"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ରେଡିଓ ବ୍ୟାଣ୍ଡ ମୋଡ୍ ସେଟ୍ କରନ୍ତୁ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ବ୍ୟାଣ୍ଡ ତାଲିକା ଲୋଡ୍ କରାଯାଉଛି…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"ସେଟ୍ କରନ୍ତୁ"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ଅସଫଳ"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"ସଫଳ"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ଟାବ୍‌ଲେଟ୍ ସୂଚନା"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ଫୋନ୍ ସୂଚନା"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ମୋବାଇଲ୍ କମ୍ପାନୀ ପ୍ରାବଧାନ ସୂଚନା"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"କେରିଅର୍ ପ୍ରୋଭିଜନିଂ ଟ୍ରିଗର୍ କରନ୍ତୁ"</string>
 </resources>
diff --git a/res/values-pa/config.xml b/res/values-pa/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-pa/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 66554b2..08d69b8 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ਨਿੱਜੀ ਨੰਬਰ"</string>
     <string name="payphone" msgid="7936735771836716941">"ਪੇਫੋਨ"</string>
     <string name="onHold" msgid="6132725550015899006">"ਹੋਲਡ ਤੇ"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> ਸੁਨੇਹਾ"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"ਕੈਰੀਅਰ ਸੁਨੇਹਾ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI ਕੋਡ ਚਾਲੂ ਕੀਤਾ"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD ਕੋਡ ਚੱਲ ਰਿਹਾ ਹੈ…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI ਕੋਡ ਰੱਦ ਕੀਤਾ"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"ਸਿਰਫ਼ NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: ਤਰਜੀਹੀ WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: ਕੇਵਲ GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: ਗਲੋਬਲ"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: ਸਿਰਫ਼ NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"ਕਾਲਿੰਗ"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ਨੈੱਟਵਰਕ"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"ਵਿਸਤ੍ਰਿਤ 4G LTE ਮੋਡ"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ਮਲਟੀ-ਸ਼੍ਰੇਣੀ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"ਮਲਟੀ-ਸ਼੍ਰੇਣੀ ਸਮਰਥਿਤ"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ਮਲਟੀ-ਸ਼੍ਰੇਣੀ ਅਸਮਰਥਿਤ"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ਸਿਫ਼ਾਰਸ਼ੀ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ਸਿਫ਼ਾਰਸ਼ੀ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G ( ਸਿਫ਼ਾਰਸ਼  ਕੀਤਾ)"</string>
     <string name="network_global" msgid="3289646154407617631">"ਗਲੋਬਲ"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ਫਿਕਸਡ ਡਾਇਲਿੰਗ ਨੰਬਰ ਮਿਟਾ ਰਿਹਾ ਹੈ…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ਫਿਕਸਡ ਡਾਇਲਿੰਗ ਨੰਬਰ ਮਿਟਾਇਆ।"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ ਕਿਉਂਕਿ ਤੁਸੀਂ ਇੱਕ ਗ਼ਲਤ PIN ਟਾਈਪ ਕੀਤਾ ਸੀ।"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਕਿਉਂਕਿ ਨੰਬਰ 20 ਅੰਕਾਂ ਤੋਂ ਵੱਧ ਹੈ।"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN ਨੂੰ ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਕਿਉਂਕਿ ਨੰਬਰ <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ਅੰਕਾਂ ਤੋਂ ਵੱਧ ਹੈ।"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ। PIN2 ਗ਼ਲਤ ਸੀ ਜਾਂ ਫ਼ੋਨ ਨੰਬਰ ਅਸਵੀਕਾਰ ਕੀਤਾ ਗਿਆ ਸੀ।"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN ਓਪਰੇਸ਼ਨ ਅਸਫਲ।"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM ਕਾਰਡ ਤੋਂ ਪੜ੍ਹ ਰਿਹਾ ਹੈ…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ। <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ਇੱਕ ਐਮਰਜੈਂਸੀ ਨੰਬਰ ਨਹੀਂ ਹੈ।"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇੱਕ ਐਮਰਜੈਂਸੀ ਨੰਬਰ ਡਾਇਲ ਕਰੋ।"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"ਸੰਕਟਕਾਲੀਨ ਕਾਲ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"ਸਿਰਫ਼ ਡੀਵਾਈਸ ਦਾ ਮਾਲਕ ਪਿੰਨ/PUK ਕੋਡ ਦਾਖਲ ਕਰ ਸਕਦਾ ਹੈ।"</string>
     <string name="police_type_description" msgid="2819533883972081757">"ਪੁਲਿਸ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ਐਂਬੂਲੈਂਸ"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"ਅੱਗ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"ਨਾਲ-ਦੀ-ਨਾਲ ਦਿਸਦੀ ਲਿਖਤ (RTT) ਵਾਲੀ ਕਾਲ"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"ਕਿਸੇ ਵੌਇਸ ਕਾਲ ਦੌਰਾਨ ਸੁਨੇਹਾ ਭੇਜਣ ਦਿਓ"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT ਅਜਿਹੇ ਕਾਲ ਕਰਨ ਵਾਲੇ ਲੋਕਾਂ ਦੀ ਸਹਾਇਤਾ ਕਰਦਾ ਹੈ ਜੋ ਬੋਲੇ, ਘੱਟ ਸੁਣਨ ਵਾਲੇ, ਬੋਲਣ ਵਿੱਚ ਅਸਮਰਥ ਜਾਂ ਜਿਨ੍ਹਾਂ ਲਈ ਸਿਰਫ਼ ਅਵਾਜ਼ ਕਾਫ਼ੀ ਨਹੀਂ ਹੁੰਦੀ।&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ਹੋਰ ਜਾਣੋ&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT ਕਾਲਾਂ ਨੂੰ ਇੱਕ ਪ੍ਰਤਿਲਿਪੀ ਸੁਨੇਹੇ ਵਜੋਂ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ\n       &lt;br&gt; - RTT ਵੀਡੀਓ ਕਾਲਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ਨੋਟ ਕਥਨ:ਵੇਲੇ RTT ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ਬੰਦ"</item>
     <item msgid="1449091874731375214">"TTY ਪੂਰਾ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ਹਾਂ"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"ਨਹੀਂ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"ਖਾਰਜ ਕਰੋ"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ਫ਼ੋਨ ਸੰਕਟਕਾਲੀਨ ਕਾਲ ਮੋਡ ਵਿੱਚ ਹੈ"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> ਤੱਕ"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">ਫ਼ੋਨ <xliff:g id="COUNT_1">%s</xliff:g> ਮਿੰਟ ਲਈ ਸੰਕਟਕਾਲੀਨ ਕਾਲ ਮੋਡ ਵਿੱਚ ਹੋਵੇਗਾ।\nਕੀ ਤੁਸੀਂ ਹੁਣ ਬਾਹਰ ਜਾਣਾ ਚਾਹੁੰਦੇ ਹੋ?</item>
+      <item quantity="other">ਫ਼ੋਨ <xliff:g id="COUNT_1">%s</xliff:g> ਮਿੰਟਾਂ ਲਈ ਸੰਕਟਕਾਲੀਨ ਕਾਲ ਮੋਡ ਵਿੱਚ ਹੋਵੇਗਾ।\nਕੀ ਤੁਸੀਂ ਹੁਣ ਬਾਹਰ ਜਾਣਾ ਚਾਹੁੰਦੇ ਹੋ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"ਸੇਵਾ"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"ਸੈੱਟਅੱਪ ਕਰੋ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ਕਾਲ ਬੈਰਿੰਗ ਨੂੰ ਅਕਿਰਿਆਸ਼ੀਲ ਕੀਤਾ ਗਿਆ"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"ਪਾਸਵਰਡ ਬਦਲੋ"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"ਕਾਲ ਬੈਰਿੰਗ ਦਾ ਪਾਸਵਰਡ ਬਦਲੋ"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"ਕਾਲ ਬੈਰਿੰਗ ਦਾ ਪਾਸਵਰਡ ਨਹੀਂ ਬਦਲਿਆ ਜਾ ਸਕਦਾ।"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"ਕਾਲ ਬੈਰਿੰਗ ਦਾ ਪਾਸਵਰਡ ਨਹੀਂ ਬਦਲਿਆ ਜਾ ਸਕਦਾ"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"ਪਾਸਵਰਡ ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 ਨੰਬਰਾਂ ਵਾਲਾ ਕੋਈ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"ਪਾਸਵਰਡ ਬਦਲਿਆ ਗਿਆ"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"ਪਾਸਵਰਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ਕਾਲ ਬੈਰਿੰਗ ਸੈਟਿੰਗਾਂ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"ਕੀ ਸਾਰੀਆਂ ਕਾਲ ਬੈਰਿੰਗ ਸੈਟਿੰਗਾਂ ਅਕਿਰਿਆਸ਼ੀਲ ਕਰਨੀਆਂ ਹਨ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ਨੈੱਟਵਰਕ ਰੁੱਝਿਆ ਹੋਇਆ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੀ ਕਾਲ ਲਈ ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ਨੈੱਟਵਰਕ \'ਤੇ ਭਾਰੀ ਟ੍ਰਰੈਫ਼ਿਕ ਹੈ। ਸਹਾਇਤਾ ਲਈ ਆਪਣੇ ਮੋਬਾਈਲ ਓਪਰੇਟਰ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"ਕਾਲ ਕਿਸੇ ਹੋਰ ਵਿਅਕਤੀ ਨੂੰ ਭੇਜੀ ਗਈ।"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ਨੂੰ ਵਰਤਣ ਲਈ, ਪੱਕਾ ਕਰੋ ਕਿ ਸਿਮ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> \'ਤੇ ਮੋਬਾਈਲ ਡਾਟਾ ਚਾਲੂ ਹੋਵੇ। ਤੁਸੀਂ ਇਸਨੂੰ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ਨੂੰ ਵਰਤਣ ਲਈ, ਪੱਕਾ ਕਰੋ ਕਿ ਸਿਮ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> \'ਤੇ ਮੋਬਾਈਲ ਡਾਟਾ ਅਤੇ ਡਾਟਾ ਰੋਮਿੰਗ ਦੋਨੋਂ ਚਾਲੂ ਹੋਣ। ਤੁਸੀਂ ਇਹਨਾਂ ਨੂੰ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"ਖਾਰਜ ਕਰੋ"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਬੰਦ ਕਰੋ"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ਪ੍ਰੋਵਿਜ਼ਨਡ"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ਵੀਡੀਓ ਕਾਲਿੰਗ ਪ੍ਰੋਵਿਜ਼ਨਡ"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"ਵਾਈ-ਫਾਈ ਕਾਲਿੰਗ ਪ੍ਰੋਵਿਜ਼ਨਡ"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/ਮੌਜੂਦਗੀ ਪ੍ਰੋਵਿਜ਼ਨਡ"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ਡਾਟਾ"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS ਚਾਲੂ ਕਰੋ"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ਕੀ ਡੀਵਾਈਸ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨਾ ਹੈ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ਤੁਹਾਨੂੰ ਇਹ ਸੈਟਿੰਗ ਬਦਲਣ ਲਈ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ਰੱਦ ਕਰੋ"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"ਮੋਬਾਈਲ ਰੇਡੀਓ ਪਾਵਰ"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ਸਿਮ ਦੀ ਪਤਾ ਬੁੱਕ ਦੇਖੋ"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ਫਿਕਸਡ ਡਾਇਲਿੰਗ ਨੰਬਰ ਦੇਖੋ"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ਸੇਵਾ ਡਾਇਲਿੰਗ ਨੰਬਰ ਦੇਖੋ"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS ਸੇਵਾ ਸਥਿਤੀ"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS ਸਥਿਤੀ"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ਰਜਿਸਟਰ ਕੀਤੀ ਗਈ"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"ਰਜਿਸਟਰ ਨਹੀਂ ਕੀਤੀ ਗਈ"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ਉਪਲਬਧ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ਅਣਉਪਲਬਧ"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS ਰਜਿਸਟਰੇਸ਼ਨ: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE \'ਤੇ ਵੌਇਸ: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nਵਾਈ-ਫਾਈ \'ਤੇ ਵੌਇਸ: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nਵੀਡੀਓ ਕਾਲਿੰਗ: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ਇੰਟਰਫੇਸ: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"ਸੇਵਾ ਵਿੱਚ"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"ਸੇਵਾ ਵਿੱਚ ਨਹੀਂ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"ਸਿਰਫ਼ ਸੰਕਟਕਾਲੀਨ ਕਾਲਾਂ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ਰੇਡੀਓ ਬੰਦ"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ਰੋਮਿੰਗ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ਰੋਮਿੰਗ ਨਹੀਂ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"ਨਿਸ਼ਕਿਰਿਆ"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"ਘੰਟੀ ਵੱਜ ਰਹੀ ਹੈ"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"ਕਾਲ ਜਾਰੀ ਹੈ"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ਡਿਸਕਨੈਕਟ ਹੋਇਆ"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"ਕਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"ਕਨੈਕਟ ਹੈ"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"ਮੁਅੱਤਲ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"ਅਗਿਆਤ"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ਬਾਈਟਾਂ"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ਮੌਜੂਦਾ subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ਪੂਰਵ-ਨਿਰਧਾਰਤ ਡਾਟਾ ਸਿਮ ਦਾ SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ਬੈਂਡਵਿਡਥ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL ਬੈਂਡਵਿਡਥ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ਸੈੱਲ ਦੀ ਟਿਕਾਣਾ ਜਾਣਕਾਰੀ (ਨਾਪਸੰਦ ਕੀਤੀ):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ਭੌਤਿਕ ਚੈਨਲ ਸੰਰੂਪਣ:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ਸੈੱਲ ਦੀ ਜਾਣਕਾਰੀ ਦੀ ਰਿਫ੍ਰੈਸ਼ ਦਰ:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ਸਾਰੀ ਸੈੱਲ ਮਾਪ ਜਾਣਕਾਰੀ:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ਡਾਟਾ ਸੇਵਾ:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ਰੋਮਿੰਗ:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ਇਸ \'ਤੇ ਕਾਲ ਰੀਡਾਇਰੈਕਟ ਕਰੋ:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ਬੂਟ ਤੋਂ ਬਾਅਦ PPP ਰੀਸੈੱਟ ਦੀ ਗਿਣਤੀ:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"ਵਰਤਮਾਨ ਨੈੱਟਵਰਕ:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ਡਾਟਾ ਪ੍ਰਾਪਤ ਹੋਇਆ:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ਵੌਇਸ ਸੇਵਾ:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"ਸਿਗਨਲ ਦੀ ਤੀਬਰਤਾ:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ਵੌਇਸ ਕਾਲ ਸਥਿਤੀ:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ਡਾਟਾ ਭੇਜਿਆ ਗਿਆ:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"ਸੁਨੇਹੇ ਦੀ ਉਡੀਕ:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ਫ਼ੋਨ ਨੰਬਰ:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ਰੇਡੀਓ ਬੈਂਡ ਚੁਣੋ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ਵੌਇਸ ਨੈੱਟਵਰਕ ਕਿਸਮ:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ਡਾਟਾ ਨੈੱਟਵਰਕ ਕਿਸਮ:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ਫ਼ੋਨ ਕ੍ਰਮ-ਸੂਚੀ ਚੁਣੋ"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਕਿਸਮ ਸੈੱਟ ਕਰੋ:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ਹੋਸਟਨੇਮ (www.google.com) IPv4 ਪਿੰਗ ਕਰੋ:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ਹੋਸਟਨਾਮ (www.google.com) IPv6 ਪਿੰਗ ਕਰੋ:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP ਕਲਾਇੰਟ ਜਾਂਚ:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ਪਿੰਗ ਟੈਸਟ ਚਲਾਓ"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"ਅੱਪਡੇਟ"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ਰਿਫ੍ਰੈਸ਼ ਕਰੋ"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS ਜਾਂਚ ਟੌਗਲ ਕਰੋ"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-ਵਿਸ਼ੇਸ਼ ਜਾਣਕਾਰੀ/ਸੈਟਿੰਗਾਂ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ਰੇਡੀਓ ਬੈਂਡ ਮੋਡ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ਬੈਂਡ ਸੂਚੀ ਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"ਸੈੱਟ ਕਰੋ"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ਅਸਫਲ"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"ਸਫਲ"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ਟੈਬਲੈੱਟ ਜਾਣਕਾਰੀ"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ਫ਼ੋਨ ਜਾਣਕਾਰੀ"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ਕੈਰੀਅਰ ਪ੍ਰੋਵਿਜ਼ਨਿੰਗ ਜਾਣਕਾਰੀ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ਕੈਰੀਅਰ ਪ੍ਰਵਿਜ਼ਨਿੰਗ ਨੂੰ ਟ੍ਰਿਗਰ ਕਰੋ"</string>
 </resources>
diff --git a/res/values-pl/config.xml b/res/values-pl/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-pl/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 10d1703..62b76b4 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Numer prywatny"</string>
     <string name="payphone" msgid="7936735771836716941">"Automat telefoniczny"</string>
     <string name="onHold" msgid="6132725550015899006">"Oczekujące"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Wiadomość od operatora <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Wiadomość od operatora"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Kod MMI został rozpoczęty"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Uruchomiony kod USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Kod MMI został anulowany"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Tylko NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferowany tryb sieci: preferowany WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferowany tryb sieci: tylko GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferowany tryb sieci: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferowany tryb sieci: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferowany tryb sieci: CDMA + LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferowany tryb sieci: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferowany tryb sieci: globalny"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferowany tryb sieci: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferowany tryb sieci: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferowany tryb sieci: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferowany tryb sieci: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferowany tryb sieci: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferowany tryb sieci: tylko NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferowany tryb sieci: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferowany tryb sieci: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferowany tryb sieci: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferowany tryb sieci: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferowany tryb sieci: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferowany tryb sieci: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferowany tryb sieci: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferowany tryb sieci: LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferowany tryb sieci: LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferowany tryb sieci: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Połączenia"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Sieć"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Tryb rozszerzonego 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Obsługa wielu kategorii"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Obsługa wielu kategorii włączona"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Obsługa wielu kategorii wyłączona"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (zalecane)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (zalecana)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (zalecana)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globalna"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Trwa usuwanie ustalonego numeru…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Usunięto ustalony numer."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Nie zaktualizowano usługi FDN, ponieważ wpisano nieprawidłowy kod PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Nie zaktualizowano usługi FDN, ponieważ numer zawiera ponad 20 cyfr."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Nie zaktualizowano usługi FDN, ponieważ numer zawiera powyżej <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> cyfr."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Nie zaktualizowano FDN. PIN2 był niepoprawny lub numer telefonu został odrzucony."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operacja FDN nie udała się."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Czytanie z karty SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Nie można dzwonić. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nie jest numerem alarmowym."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Nie można dzwonić. Wybierz numer alarmowy."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Połączenia alarmowe niedostępne"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Kody PIN/PUK może wpisać tylko właściciel urządzenia."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policja"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Karetka pogotowia"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Straż pożarna"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Połączenie RTT (wysyłanie SMS-ów w czasie rzeczywistym)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Zezwalaj na wymianę SMS-ów podczas rozmowy głosowej"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT pomaga osobom niesłyszącym, niedosłyszącym, mającym problemy z mówieniem oraz potrzebującym czegoś więcej oprócz głosu.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Więcej informacji&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – Połączenia RTT są zapisywane jako transkrypcje\n       &lt;br&gt; – Funkcja RTT jest niedostępna w przypadku rozmów wideo"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Uwaga: funkcja RTT jest niedostępna podczas roamingu"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY wyłączony"</item>
     <item msgid="1449091874731375214">"TTY pełny"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Tak"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nie"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Zamknij"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon jest w trybie alarmowego połączenia zwrotnego"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="few">Telefon będzie w trybie alarmowego połączenia zwrotnego przez <xliff:g id="COUNT_1">%s</xliff:g> minuty.\nCzy chcesz teraz zakończyć ten tryb?</item>
+      <item quantity="many">Telefon będzie w trybie alarmowego połączenia zwrotnego przez <xliff:g id="COUNT_1">%s</xliff:g> minut.\nCzy chcesz teraz zakończyć ten tryb?</item>
+      <item quantity="other">Telefon będzie w trybie alarmowego połączenia zwrotnego przez <xliff:g id="COUNT_1">%s</xliff:g> minuty.\nCzy chcesz teraz zakończyć ten tryb?</item>
+      <item quantity="one">Telefon będzie w trybie alarmowego połączenia zwrotnego przez <xliff:g id="COUNT_0">%s</xliff:g> minutę.\nCzy chcesz teraz zakończyć ten tryb?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Dostawca"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Konfiguracja"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nie ustawiono&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Blokada połączeń dezaktywowana"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Zmień hasło"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Zmień hasło blokady połączeń"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Nie można zmienić hasła blokady połączeń."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Nie można zmienić hasła blokady połączeń"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Hasła nie są identyczne"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Wpisz hasło składające się z czterech cyfr"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Hasło zmienione"</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Potwierdź hasło"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Wpisz hasło"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Ustawienia blokady połączeń"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Dezaktywować wszystkie ustawienia blokady połączeń?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Sieć jest zajęta. Spróbuj zadzwonić później."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Sieć jest przeciążona. Skontaktuj się z operatorem i poproś o pomoc."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Połączenie przekazane na inny numer."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Aby używać usługi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, włącz mobilną transmisję danych dla karty SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> w ustawieniach sieci komórkowej."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Aby używać usługi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, włącz mobilną transmisję danych i roaming danych dla karty SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> w ustawieniach sieci komórkowej."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Zamknij"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Włącz transmisję danych"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Wyłącz transmisję danych"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Obsługa głosu przez LTE włączona"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Możliwość prowadzenia rozmów wideo"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Możliwość prowadzenia rozmów przez Wi-Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Obsługa EAB/obecności włączona"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Dane CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Włącz DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Uruchomić urządzenie ponownie?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Musisz ponownie uruchomić urządzenie, by to zmienić."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Uruchom ponownie"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Anuluj"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Moc sygnału komórkowego"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Wyświetl książkę adresową z karty SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Wyświetl ustalone numery"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Wyświetl numery usług"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Stan usługi IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Stan IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Zarejestrowane"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Niezarejestrowane"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Dostępne"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Brak dostępu"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Rejestracja w usłudze IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nRozmowy wideo: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterfejs UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Działa"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Nie działa"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Tylko połączenia alarmowe"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio wyłączone"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Brak roamingu"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Brak"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Dzwonię"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Połączenie w toku"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Odłączono"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Łączę"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Połączono"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Zawieszone"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Brak informacji"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"– pakiety"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"B"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Aktualny identyfikator:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Identyfikator domyślnej karty SIM do transmisji danych:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Przepustowość kanału DL (kb/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Przepustowość kanału UL (kb/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacje o lokalizacji z sieci komórkowej (wycofane):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracja kanału fizycznego LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Częstotliwość odświeżania informacji o sieci komórkowej:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Wszystkie informacje pomiarowe z sieci komórkowej:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Usługa transmisji danych:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Przekierowanie połączeń:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Liczba operacji resetowania PPP od momentu uruchomienia:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Obecna sieć:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Dane odebrane:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Usługa połączeń głosowych:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Siła sygnału:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Stan połączenia głosowego:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Dane wysłane:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Wiadomość oczekująca:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Numer telefonu:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Wybierz pasmo radiowe"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Typ sieci dla połączeń głosowych:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Typ sieci danych:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Wybierz indeks telefonu"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Ustaw preferowany typ sieci:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping nazwa_hosta(www.google.pl) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping nazwa_hosta(www.google.pl) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test klienta HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Przeprowadź test pingu"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Aktualizacja"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Odśwież"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Przełącz sprawdzanie DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informacje/ustawienia specyficzne dla producenta OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Ustawianie trybu pasma radiowego"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Ładuję listę pasm…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Ustaw"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Nie udało się"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Udało się"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informacje o tablecie"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacje o telefonie"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informacje o obsłudze administracyjnej operatora"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Uruchom obsługę administracyjną operatora"</string>
 </resources>
diff --git a/res/values-pt-rPT/config.xml b/res/values-pt-rPT/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-pt-rPT/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index bca2506..08217e4 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Número particular"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefone público"</string>
     <string name="onHold" msgid="6132725550015899006">"Em espera"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mensagem <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mensagem do Operador"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Código de MMI iniciado"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"A executar código USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Código de MMI cancelado"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Apenas NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modo de rede preferido: apenas WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modo de rede preferido: apenas GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Modo de rede preferido: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Modo de rede preferido: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Modo de rede preferido: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Modo de rede preferido: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Modo de rede preferido: global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Modo de rede preferido: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modo de rede preferido: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Modo de rede preferido: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Modo de rede preferido: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Modo de rede preferido: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Modo de rede preferido: apenas NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Modo de rede preferido: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Modo de rede preferido: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Modo de rede preferido: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Modo de rede preferido: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Modo de rede preferido: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Modo de rede preferido: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Modo de rede preferido: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Modo de rede preferido: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Modo de rede preferido: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Modo de rede preferido: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Chamadas"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Rede"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modo 4G LTE avançado"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Categoria múltipla"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Categoria múltipla activada"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Modo de categorias múltiplas desativado"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recomendado)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recomendado)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recomendado)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"A eliminar números autorizados..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Números autorizados eliminados."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Os números autorizados não foram atualizados porque introduziu um PIN incorreto."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"O FDN não foi atualizado porque o número excede os 20 dígitos."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"O FDN não foi atualizado porque o número excede <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> dígitos."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Não foram atualizados os números autorizados. O PIN2 estava errado ou o número de telefone foi rejeitado."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Falha de FDN."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"A ler a partir do cartão SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Não é possível telefonar. <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="2785803395047793634">"Não é possível telefonar. Marque um número de emergência."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Chamadas de emergência não disponíveis"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Apenas o proprietário do dispositivo pode introduzir os códigos PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polícia"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulância"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Fogo"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Chamada com Mensagens de texto em tempo real (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Permitir envio de mensagens numa chamada de voz"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"A RTT assiste os autores de chamadas surdos, com deficiências auditivas, dificuldades da fala ou que precisem de mais do que apenas a voz.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Saiba mais&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - As chamadas RTT são guardadas como transcrição de mensagem\n       &lt;br&gt; - A RTT não está disponível para videochamadas"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Nota: a RTT não está disponível em roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Teletipo desativado"</item>
     <item msgid="1449091874731375214">"Teletipo completo"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sim"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Não"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ignorar"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"O telemóvel está no modo de chamada de retorno de emergência."</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Até à(s) <xliff:g id="COMPLETETIME">%s</xliff:g>."</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">O telemóvel ficará no modo de chamada de retorno de emergência durante <xliff:g id="COUNT_1">%s</xliff:g> minutos.\nPretende sair agora?</item>
+      <item quantity="one">O telemóvel ficará no modo de chamada de retorno de emergência durante <xliff:g id="COUNT_0">%s</xliff:g> minuto.\nPretende sair agora?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Serviço"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuração"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Não definido&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Barramento de chamadas desativado"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Alterar palavra-passe"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Alterar palavra-passe de barramento de chamadas"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Não é possível alterar a palavra-passe de barramento de chamadas"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Não é possível alterar a palavra-passe de barramento de chamadas."</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"As palavras-passe não correspondem"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Introduza uma palavra-passe com 4 números"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"A palavra-passe foi alterada"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmar palavra-passe"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Introduzir palavra-passe"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Definições de barramento de chamadas"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Desativar todas as definições de barramento de chamadas?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"A rede está ocupada. Tente efetuar novamente a chamada mais tarde."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"A rede está congestionada. Contacte o seu operador móvel para obter assistência."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"A chamada foi desviada."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Para utilizar o/a <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, certifique-se de que os dados móveis estão ativados para o SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Pode alterar esta definição nas definições de rede móvel."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Para utilizar o/a <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, certifique-se de que os dados móveis e o roaming de dados estão ativados para o SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Pode alterar estas definições nas definições de rede móvel."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ignorar"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Ativar ligação de dados"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Desativar ligação de dados"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE fornecido"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videochamadas fornecidas"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Chamadas Wi-Fi fornecidas"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/presença aprovisionada"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Dados de CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Ativar DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Pretende reiniciar o dispositivo?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Tem de reiniciar o dispositivo para alterar esta definição."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Potência do rádio móvel"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver livro de endereços do SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números autorizados"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcação de serviços"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Estado do serviço IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Estado IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registado"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Não registado"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponível"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Indisponível"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registo IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoz por LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoz por Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideochamadas: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterface UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Em serviço"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Fora de serviço"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Apenas chamadas de emergência"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Rádio desativado"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Sem roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inativo"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"A tocar…"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Chamada em curso"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Desligado"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"A ligar…"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Ligado"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspenso"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Desconhecido"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"SubID atual:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubID do SIM de dados predefinido:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Largura de banda de transferência (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Largura de banda de carregamento (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informações da localização da célula (descontinuadas):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuração do canal físico LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Taxa de atualização das informações da célula:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Todas as informações de medição de células:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Serviço de dados:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redirecionar chamada:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Número de reposições de PPP desde o arranque:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Rede atual:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Dados recebidos:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Serviço de voz:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Intensidade do sinal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Estado da chamada de voz:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Dados enviados:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mensagem em espera:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Número de telefone:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Selecionar banda de rádio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipo de rede de voz:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipo de rede de dados:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Selecionar lista telefónica"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Definir tipo de rede preferido:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Nome de anfitrião de ping (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Nome de anfitrião de ping (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Teste de Cliente HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Executar teste de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Atualizar"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Atualizar"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Ativar/desativar verificação de DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informações/definições específicas de OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Definir modo de banda de rádio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"A carregar lista de bandas…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Definir"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Sem êxito"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Bem sucedido"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informações do tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informações do telefone"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informações de fornecimento do operador"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Acionar fornecimento do operador"</string>
 </resources>
diff --git a/res/values-pt/config.xml b/res/values-pt/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-pt/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index dd394db..5e012a5 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Número privado"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefone público"</string>
     <string name="onHold" msgid="6132725550015899006">"Em espera"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mensagem da operadora <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mensagem da operadora"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Código MMI iniciado"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Código USSD em execução…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Código MMI cancelado"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Apenas NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modo de rede preferencial: WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modo de rede preferencial: somente GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Modo de rede preferencial: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Modo de rede preferencial: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Modo de rede preferencial: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Modo de rede preferencial: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Modo de rede preferencial: global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Modo de rede preferencial: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modo de rede preferido: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Modo de rede preferencial: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Modo de rede preferencial: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Modo de rede preferencial: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Modo de rede preferencial: somente NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Modo de rede preferencial: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Modo de rede preferencial: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Modo de rede preferencial: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Modo de rede preferencial: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Modo de rede preferencial: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Modo de rede preferencial: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Modo de rede preferencial: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Modo de rede preferencial: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Modo de rede preferencial: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Modo de rede preferencial: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Chamadas"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Rede"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modo 4G LTE avançado"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Várias categorias"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Várias categorias ativadas"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Várias categorias desativadas"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recomendado)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recomendado)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recomendável)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Excluindo número de discagem fixa…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Número de discagem fixa excluído."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"O FDN não foi atualizado porque você digitou um PIN incorreto."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"O FDN não foi atualizado porque o número excede 20 dígitos."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"O FDN não foi atualizado porque o número excede <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> dígitos."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"O FDN não foi atualizado. O PIN2 estava incorreto, ou o número de telefone foi rejeitado."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Falha na operação de FDN."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lendo a partir do chip…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Não é possível realizar chamadas. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> não é um telefone de emergência."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Não é possível realizar chamadas. Disque o número de telefone de emergência."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Chamada de emergência indisponível"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Somente o proprietário do dispositivo pode digitar os códigos PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polícia"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulância"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Incêndio"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Chamada com mensagem de texto em tempo real (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Permitir o envio de mensagens de texto em uma chamada de voz"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"A RTT ajuda os autores das chamadas com deficiências como surdez, dificuldade de audição ou fala ou que precisam de outros recursos além de voz.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Saiba mais&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; — As chamadas RTT são salvas como transcrições de mensagem\n       &lt;br&gt; — A RTT não está disponível para videochamadas"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Observação: a RTT não está disponível em roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY desativado"</item>
     <item msgid="1449091874731375214">"TTY completo"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sim"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Não"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Descartar"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"O smartphone está no modo de retorno de chamada de emergência"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Até <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">O smartphone ficará no modo de retorno de chamada de emergência por <xliff:g id="COUNT_1">%s</xliff:g> minuto.\nVocê quer sair agora?</item>
+      <item quantity="other">O smartphone ficará no modo de retorno de chamada de emergência por <xliff:g id="COUNT_1">%s</xliff:g> minutos.\nVocê quer sair agora?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Serviço"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuração"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Não definido&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"O bloqueio de chamadas foi desativado"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Alterar senha"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Alterar senha do bloqueio de chamadas"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Não é possível alterar a senha do bloqueio de chamadas."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Não é possível alterar a senha do bloqueio de chamadas"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"As senhas não correspondem"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Digite uma senha com 4 números"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"A senha foi alterada"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmar senha"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Digitar senha"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Configurações do bloqueio de chamadas"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Desativar todas as configurações do bloqueio de chamadas?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"A rede está ocupada. Ligue novamente mais tarde."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"A rede está congestionada. Entre em contato com sua operadora para receber ajuda."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Chamada desviada."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Verifique se os dados móveis estão ativados para o SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> para usar este serviço: <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Você pode alterar essa opção nas configurações da rede móvel."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Verifique se os dados móveis e o roaming de dados estão ativados para o SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> para usar este serviço: <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Você pode alterar essa opção nas configurações da rede móvel."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Dispensar"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Ativar conexão de dados"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Desativar conexão de dados"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE provisionado"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videochamadas provisionadas"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Chamadas por Wi-Fi provisionadas"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/presença provisionados"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Dados CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Ativar DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Reiniciar o dispositivo?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Reinicie o dispositivo para alterar essa configuração."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Potência do rádio celular"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver o catálogo de endereços do chip"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de discagem fixa"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de discagem do serviço"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status de serviço IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Status do IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrado"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Não registrado"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponível"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Indisponível"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registro IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideochamada: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterface UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Em serviço"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Fora de serviço"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Somente chamadas de emergência"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Rádio desativado"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Não está em roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inativo"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Tocando"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Chamada em andamento"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Desconectado"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Conectando"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Conectado"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspenso"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Desconhecido"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Subcódigo atual:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Subcódigo do chip de dados padrão:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Largura de banda DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Largura de banda UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informações de local do celular (uso suspenso):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuração do canal físico de LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Taxa de atualização das informações do celular:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Todas as informações de medição do celular:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Serviço de dados:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redirecionamento da chamada:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Número de redefinições PPP desde a inicialização:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Rede atual:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Dados recebidos:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Serviço de voz:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Potência do sinal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status da chamada de voz:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Dados enviados:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mensagem em espera:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Número de telefone:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Selecionar frequência de rádio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipo de rede de voz:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipo de rede de dados:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Selecionar lista telefônica"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Definir tipo de rede preferido:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Dar um ping no nome do host (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Dar um ping no nome do host (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Teste do cliente HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Executar teste de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Atualizar"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Atualizar"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Ativar/desativar verificação do DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informações/configurações específicas de OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Definir modo de banda de rádio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Carregando a lista de bandas…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Definir"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Falha"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Concluído"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informações do tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informações do telefone"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informações de provisionamento da operadora"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Acionar provisionamento da operadora"</string>
 </resources>
diff --git a/res/values-ro/config.xml b/res/values-ro/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ro/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 1748fba..358343b 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Număr privat"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefon public"</string>
     <string name="onHold" msgid="6132725550015899006">"În așteptare"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mesaj <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mesaj de la operator"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Cod MMI pornit"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Se rulează codul USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Cod MMI anulat"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Numai NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Mod de rețea preferat: de preferat WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Mod de rețea preferat: numai GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Mod de rețea preferat: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Mod de rețea preferat: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Mod de rețea preferat: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Mod de rețea preferat: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Mod de rețea preferat: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Mod de rețea preferat: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Mod de rețea preferat: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Mod de rețea preferat: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Mod de rețea preferat: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Mod de rețea preferat: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Mod de rețea preferat: numai NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Mod de rețea preferat: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Mod de rețea preferat: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Mod de rețea preferat: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Mod de rețea preferat: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Mod de rețea preferat: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Mod de rețea preferat: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Mod de rețea preferat: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Mod de rețea preferat: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Mod de rețea preferat: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Mod de rețea preferat: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Se apelează"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Rețea"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Mod 4G LTE îmbunătățit"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Categorii multiple"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Categorii multiple activate"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Categorii multiple dezactivate"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recomandat)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recomandat)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recomandat)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Se șterge numărul cu apelări restricționate..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Numărul cu apelări restricționate a fost șters."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"NAR nu a fost actualizat, deoarece ați introdus un cod PIN incorect."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"NAR nu a fost actualizat deoarece numărul depășește 20 de cifre."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"NAR nu a fost actualizat deoarece numărul depășește <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> cifre."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"NAR nu a fost actualizat. Codul PIN2 a fost incorect sau numărul de telefon a fost respins."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operațiunea NAR nu a reușit."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Se citește de pe cardul SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Nu se poate apela. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nu este un număr de urgență."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Nu se poate apela. Formați un număr de urgență."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Apelurile de urgență nu sunt disponibile."</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Numai proprietarul dispozitivului poate să introducă respectivele coduri PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Poliție"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulanță"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Pompieri"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Apel de tipul Text în timp real (TTR)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Permiteți schimbul de mesaje în timpul unui apel vocal"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"TTR oferă asistență apelanților fără auz, cu deficiențe de auz, care au dizabilități de vorbire sau care au nevoie de mai mult decât de voce.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Aflați mai multe&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Apelurile RTT sunt salvate ca transcrierea unui mesaj\n       &lt;br&gt; - Serviciul TTR nu este disponibil pentru apelurile video."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Notă: funcția TTR nu este disponibilă când sunteți în roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY dezactivat"</item>
     <item msgid="1449091874731375214">"TTY integral"</item>
@@ -611,6 +639,13 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nu"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Renunțați"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefonul va fi în modul Apelare inversă de urgență"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Până la <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="few">Telefonul va fi în modul Apelare inversă de urgență timp de <xliff:g id="COUNT_1">%s</xliff:g> minute.\nDoriți să ieșiți acum?</item>
+      <item quantity="other">Telefonul va fi în modul Apelare inversă de urgență timp de <xliff:g id="COUNT_1">%s</xliff:g> de minute.\nDoriți să ieșiți acum?</item>
+      <item quantity="one">Telefonul va fi în modul Apelare inversă de urgență timp de <xliff:g id="COUNT_0">%s</xliff:g> minut.\nDoriți să ieșiți acum?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Serviciu"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configurare"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nesetat&gt;"</string>
@@ -750,7 +785,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Restricționarea apelurilor este dezactivată"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Schimbați parola"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Schimbați parola pentru restricționarea apelurilor"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Nu se poate schimba parola pentru restricționarea apelurilor."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Nu se poate schimba parola pentru restricționarea apelurilor"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Parolele nu se potrivesc"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Introduceți o parolă cu 4 cifre"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Parola a fost modificată"</string>
@@ -759,7 +794,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmați parola"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Introduceți parola"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Setări de restricționare a apelurilor"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Dezactivați toate setările de restricționare a apelurilor?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Rețeaua este ocupată. Încercați să apelați din nou mai târziu."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Rețeaua este aglomerată. Contactați operatorul de telefonie mobilă pentru a cere asistență."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Apelul a fost deviat."</string>
@@ -789,4 +823,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, datele mobile trebuie să fie activate pentru cardul SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puteți modifica acest lucru în setările rețelei mobile."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, datele mobile și roamingul de date trebuie să fie activate pentru cardul SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puteți modifica acest lucru în setările rețelei mobile."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Închideți"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Activați conexiunea de date"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Dezactivați conexiunea de date"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Oferit de VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Apelarea video este configurată"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Apelarea prin Wi-Fi este configurată"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Setări configurate pentru EAB/prezență"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Date CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Activați DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Reporniți dispozitivul?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Trebuie să reporniți dispozitivul pentru a modifica setarea."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reporniți"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Anulați"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Alimentare radio celular"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afișați agenda de pe SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afișați numerele pentru apeluri restricționate"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vedeți numere de apelare de serviciu"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Starea serviciului IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Stare IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Înregistrat"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Neînregistrat"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponibil"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Indisponibil"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Înregistrare IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice prin LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoce prin WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nApelare video: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterfață UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"În aria de acoperire"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"În afara ariei de acoperire"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Numai apeluri de urgență"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio oprit"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Nu se utilizează roamingul"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactiv"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Sună"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Apel în desfășurare"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Deconectat"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Se conectează"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Conectat"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendat"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Necunoscut"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pachete"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"byți"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"SubId actual:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId pentru SIM-ul de date prestabilit:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Lățime de bandă de descărcare (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Lățime de bandă de încărcare (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informații despre localizarea celulei (învechite):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configurarea canalului fizic LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Rata de actualizare a informațiilor despre celulă:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Toate informațiile de măsurare despre celulă:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Serviciu de date:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redirecționarea apelului:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Numărul de resetări PPP de la pornire:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Rețeaua actuală:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Date primite:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Serviciu de voce:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Puterea semnalului:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Stare apel vocal:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Date trimise:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mesaj în așteptare:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Număr de telefon:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Selectați banda radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipul rețelei de voce:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipul rețelei de date:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Selectați indexul telefonului"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Setați tipul preferat de rețea:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Dați ping adresei IPv4 a numelui de gazdă (www.google.com):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Dați ping adresei IPv6 a numelui de gazdă (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test client HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Efectuați testul de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Actualizați"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualizați"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Activați/dezactivați verificarea DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informații/Setări caracteristice OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Setați Modul bandă radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Se încarcă lista de benzi…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Setați"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Nereușit"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Reușit"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informații tabletă"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informații despre telefon"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informații despre provizionarea operatorului"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Declanșați provizionarea operatorului"</string>
 </resources>
diff --git a/res/values-ru/config.xml b/res/values-ru/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ru/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 18cf339..ce9968d 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Скрытый номер"</string>
     <string name="payphone" msgid="7936735771836716941">"Телефон-автомат"</string>
     <string name="onHold" msgid="6132725550015899006">"Ждет ответа"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Сообщение через <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Сообщение оператора"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Код MMI запущен"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Выполняется запрос USSD…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Код MMI отменен"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Только NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Предпочтительная сеть: WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Предпочтительная сеть: только GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Предпочтительный режим: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Предпочтительный режим: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Предпочтительный режим: CDMA и LTE/EvDo"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Предпочтительный сетевой режим: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Предпочтительный режим: весь мир"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Предпочтительный режим: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Предпочтительный режим: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Предпочтительный режим: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Предпочтительный режим: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Предпочтительный режим: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Предпочтительный сетевой режим: только NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Предпочтительный сетевой режим: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Предпочтительный сетевой режим: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Предпочтительный сетевой режим: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Предпочтительный сетевой режим: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Предпочтительный сетевой режим: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Предпочтительный сетевой режим: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Предпочтительный сетевой режим: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Предпочтительный сетевой режим: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Предпочтительный сетевой режим: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Предпочтительный сетевой режим: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Вызовы"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Сеть"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Режим 4G LTE"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Подборка из нескольких категорий"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Подборка из нескольких категорий включена"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Подборка из нескольких категорий отключена"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (рекомендуется)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (рекомендуется)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (рекомендуется)"</string>
     <string name="network_global" msgid="3289646154407617631">"Все"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Выполняется удаление номера ограниченного набора…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Номер ограниченного набора удален."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Разрешенный номер не обновлен, так как введен неверный PIN-код."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Разрешенный номер не обновлен, так как не может содержать более 20 цифр"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Разрешенный номер не обновлен, так как не может содержать более <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> цифр."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Список разрешенных номеров не обновлен. Указан неверный PIN2 или номер телефона."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Не удалось включить FDN"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Считывание с SIM-карты…"</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Не удалось позвонить. Номер <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не принадлежит экстренным службам."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Не удалось позвонить. Наберите номер экстренных служб."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Экстренные вызовы недоступны"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Ввести коды PIN/PUK может только владелец устройства."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Полиция"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Скорая помощь"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Пожарная служба"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Вызов RTT"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Разрешить обмен сообщениями во время голосового вызова"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Функция RTT предназначена для пользователей с нарушениями слуха и речи.&lt;br&gt;&lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Подробнее…&lt;/a&gt;\n&lt;br&gt;&lt;br&gt;– Вызовы RTT сохраняются как транскрипции.\n&lt;br&gt;– Функция RTT недоступна при видеовызове."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Примечание. Функция RTT недоступна в роуминге."</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Телетайп выключен"</item>
     <item msgid="1449091874731375214">"Полнофункциональный телетайп"</item>
@@ -615,6 +643,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Да"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Нет"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Закрыть"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефон находится в режиме экстренных обратных вызовов"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"До <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Телефон будет оставаться в режиме экстренных обратных вызовов <xliff:g id="COUNT_1">%s</xliff:g> минуту.\nВыйти сейчас?</item>
+      <item quantity="few">Телефон будет оставаться в режиме экстренных обратных вызовов <xliff:g id="COUNT_1">%s</xliff:g> минуты.\nВыйти сейчас?</item>
+      <item quantity="many">Телефон будет оставаться в режиме экстренных обратных вызовов <xliff:g id="COUNT_1">%s</xliff:g> минут.\nВыйти сейчас?</item>
+      <item quantity="other">Телефон будет оставаться в режиме экстренных обратных вызовов <xliff:g id="COUNT_1">%s</xliff:g> минуты.\nВыйти сейчас?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Служба"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Настройка"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Не задано&gt;"</string>
@@ -754,7 +790,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Настройки запрета вызовов отключены"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Изменить пароль"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Изменить пароль для функции запрета вызовов"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Не удалось изменить пароль"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Не удалось изменить пароль для функции запрета вызовов"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Пароли не совпадают"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Введите пароль из 4 цифр"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Пароль изменен"</string>
@@ -763,7 +799,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Подтвердите пароль"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Введите пароль"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Настройки запрета вызовов"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Отключить все настройки запрета вызовов?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Сеть занята. Попробуйте выполнить вызов позже."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Сеть перегружена. Обратитесь за помощью к своему оператору мобильной связи."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Абонент переадресовал вызов."</string>
@@ -793,4 +828,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Для работы этого сервиса (<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>) необходимо подключение к мобильному Интернету через SIM-карту <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Этот параметр можно изменить в настройках мобильной сети."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Для работы этого сервиса (<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>) необходимо подключение к мобильному Интернету и доступ к интернет-роумингу через SIM-карту <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Эти параметры можно изменить в настройках мобильной сети."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Закрыть"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Включить передачу данных"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Отключить передачу данных"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Синхронизация VoLTE включена"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Видеосвязь предоставлена"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Связь по Wi-Fi предоставлена"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Синхронизация EAB/Presence включена"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Данные CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Включить DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Перезапустить устройство?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Чтобы изменить эту настройку, перезапустите устройство."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Перезапустить"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Отмена"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Мощность радиосигнала"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Посмотреть адресную книгу на SIM-карте"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Список разрешенных номеров"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Посмотреть номера служебного набора"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Статус сервиса IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Статус сервиса IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Зарегистрировано"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Не зарегистрировано"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Доступно"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Недоступно"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Статус регистрации сервиса IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoLTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoWi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВидеовызовы: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-интерфейс: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"В зоне обслуживания"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Вне зоны обслуживания"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Только экстренные вызовы"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Радио выключено"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роуминг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Не в роуминге"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Неактивно"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Вызов…"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Вызов"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Отключено"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Подключение"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Подключено"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Заблокировано"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Неизвестно"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"байт"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Текущий доп. идентификатор:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Доп. идентификатор SIM-карты для мобильного Интернета по умолчанию:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Пропускная способность DL-канала (кбит/c):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Пропускная способность UL-канала (кбит/с):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Информация о местоположении сети (устаревшее):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфигурация физического канала LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Частота обновления данных о сетях:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Статистика сети:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Сервис для передачи данных:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роуминг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Переадресация вызовов:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Количество сбросов PPP после загрузки:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Текущая сеть:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Получено данных:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Сервис голосовой связи:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Уровень сигнала:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Статус голосовых вызовов:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Отправлено данных:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Параллельное сообщение:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Номер телефона:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Выбрать радиостанцию"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Тип сети для голосовой связи:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Тип сети для передачи данных:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Выберите телефонный код"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Настроить предпочтительный тип сети:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Имя хоста запроса ping для www.google.com, IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Имя хоста запроса ping для www.google.com, IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Проверка клиента HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Выполнить проверку ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Обновить"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Обновить"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Включить/отключить проверку DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Информация/настройки OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Настроить режим сети"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Загрузка списка частот…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Сохранить"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Сбой"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Успешно"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Информация о планшетном ПК"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Информация о телефоне"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Сведения о синхронизации оператора"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Запустить синхронизацию оператора"</string>
 </resources>
diff --git a/res/values-si/config.xml b/res/values-si/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-si/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 9d8a3fb..b89b1d8 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"පුද්ගලික අංකය"</string>
     <string name="payphone" msgid="7936735771836716941">"පේෆෝනය"</string>
     <string name="onHold" msgid="6132725550015899006">"රඳවා ගනිමින්"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>පණිවිඩය"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"වාහක පණිවිඩය"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI කේතය ආරම්භ විය"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD කේතය ධාවනය වෙමින්…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI කේතය අවලංගු කෙරුණි"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR පමණි"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ප්‍රිය ජාල ආකාරය: WCDMA කැමතියි"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ප්‍රිය ජාල ආකාරය: GSM පමණි"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ප්‍රිය ජාල ආකාරය: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ප්‍රිය ජාල ආකාරය: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ප්‍රිය ජාල ආකාරය: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"වඩා කැමති ජාල ප්‍රකාරය: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ප්‍රිය ජාල ආකාරය: ගෝලීය"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ප්‍රිය ජාල ආකාරය: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"කැමති ජාල ආකාරය: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"වඩා කැමති ජාල ප්‍රකාරය: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"වඩා කැමති ජාල ප්‍රකාරය: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"වඩා කැමති ජාල ප්‍රකාරය: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"වඩා කැමති ජාල ප්‍රකාරය: NR පමණි"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"වඩා කැමති ජාල ප්‍රකාරය: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"අමතමින්"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ජාලය"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"දියුණු කරන ලද 4G LTE මෝඩය"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"බහු-ප්‍රවර්ග"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"බහු-ප්‍රවර්ග සබලයි"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"බහු-ප්‍රවර්ග අබලයි"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (නිර්දේශිත)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (නිර්දෙශිත)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (නිර්දෙශිත)"</string>
     <string name="network_global" msgid="3289646154407617631">"ගෝලීය"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ස්ථිර ඇමතුම් අංකය මකමින්..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ස්ථාවර ඇමතුම් අංකය මකන ලදි."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"ඔබ වැරදි PIN එකක් ඇතුලත් කළ බැවින් FDN යාවත්කාලින නොවුණි."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"අංකය ඉලක්කම් 20ක් ඉක්මවන නිසා FDN යාවත්කාලීන නොකරන ලදී."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"අංකය ඉලක්කම් <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ඉක්මවන නිසා FDN යාවත්කාලීන නොකරන ලදී."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN යාවත්කාලින නොවුණි. PIN2 වැරදියි, නැති නම් දුරකථන අංකය ප්‍රතික්ෂේප විය."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN ක්‍රියාවලිය අසමත්."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM කාඩ් පතෙන් කියවමින්…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"ඇමතුම් ලබාගැනීම කළ නොහැක. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> මෙය හදිස්සි ඇමතුම් අංකයක් නොවේ."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"ඇමතිය නොහැක. හදිසි අංකයක් අමතන්න."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"හදිසි අවස්ථා ඇමතුම ලබා ගත නොහැකිය"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"උපාංගයේ හිමිකරුට පමණක් PIN/PUK කේත ඇතුළු කළ හැකිය."</string>
     <string name="police_type_description" msgid="2819533883972081757">"පොලීසිය"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ගිලන් රථය"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"ගින්න"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"තථ්‍ය-කාල පෙළ (RTT) ඇමතුම"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"හඬ ඇමතුමක් තුළ පණිවිඩ යැවීමට ඉඩ දෙන්න"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"බිහිරි, ශ්‍රවණ දුර්වලතා, කථන ආබාධයක් හෝ හඬට වඩා වැඩි දෙයක් අවශ්‍ය අමතන්නන්ට RTT සහාය දක්වයි.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;තව දැන ගන්න&lt;/a&gt;\n &lt;br&gt;&lt;br&gt; - RTT ඇමතුම් පණිවිඩ පිටපතත් ලෙස සුරැකේ \n &lt;br&gt; - වීඩියෝ ඇමතුම් සඳහා RTT ලබා ගත නොහැකිය"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"සටහන: රෝමිං කරන අතරතුර RTT ලබා ගත නොහැකිය"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY අක්‍රියයි"</item>
     <item msgid="1449091874731375214">"TTY පුර්ණයි"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ඔව්"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"නැත"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"ඉවතලන්න"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"දුරකථනය හදිසි පසු ඇමතුම් ප්‍රකාරයේ ඇත"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> තෙක්"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">දුරකථනය මිනිත්තු <xliff:g id="COUNT_1">%s</xliff:g>ක් තිස්සේ හදිසි පසු ඇමතුම් ප්‍රකාරයේ තිබෙනු ඇත.\nදැන් ඔබට පිටවීමට අවශ්‍යද?</item>
+      <item quantity="other">දුරකථනය මිනිත්තු <xliff:g id="COUNT_1">%s</xliff:g>ක් තිස්සේ හදිසි පසු ඇමතුම් ප්‍රකාරයේ තිබෙනු ඇත.\nදැන් ඔබට පිටවීමට අවශ්‍යද?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"සේවාව"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"ස්ථාපනය කරන්න"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;පිහිටුවා නැත&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ඇමතුම් අවහිර කිරීම අක්‍රිය කරන ලදී"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"මුරපදය වෙනස් කරන්න"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"ඇමතුම් අවහිර කිරීම් මුරපදය වෙනස් කරන්න"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"ඇමතුම් අවහිර කිරීම් මුරපදය වෙනස් කළ නොහැකිය."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"ඇමතුම් අවහිර කිරීම් මුරපදය වෙනස් කළ නොහැකිය"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"මුරපද නොගැළපෙයි"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"අංක 4ක් සහිත මුරපදයක් ඇතුළු කරන්න"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"මුරපදය වෙනස් කරන ලදී"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"මුරපදය තහවුරු කරන්න"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"මුරපදය ඇතුළු කරන්න"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ඇමතුම් අවහිර කිරීම් සැකසීම්"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"සියලු ඇමතුම් අවහිර කිරීම් සැකසීම් අක්‍රිය කරන්නද?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ජාලය කාර්ය බහුලයි. කරුණාකර පසුව නැවත ඔබේ ඇමතුම උත්සාහ කරන්න."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ජාලය තදබද වී ඇත. සහාය සඳහා ඔබේ ජංගම ක්‍රියාකරු අමතන්න."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"ඇමතුම හරවන ලදී."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> භාවිත කිරීමට, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> සඳහා ජංගම දත්ත ක්‍රියාත්මක කර ඇති බව සහතික කර ගන්න. ඔබට මෙය ජංගම ජාල සැකසීම් තුළ වෙනස් කිරීමට හැකිය."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> භාවිත කිරීමට, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> සඳහා ජංගම දත්ත සහ දත්ත රෝමිං ක්‍රියාත්මක කර ඇති බව සහතික කර ගන්න. ඔබට මේවා ජංගම ජාල සැකසීම් තුළ වෙනස් කිරීමට හැකිය."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"ඉවත ලන්න"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"දත්ත සබැඳුම සබල කරන්න"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"දත්ත සබැඳුම අබල කරන්න"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ප්රතිපාදනය කළ"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"වීඩියෝ ඇමතුම් ප්‍රතිපාදනය කළ"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi ඇමතුම් ප්‍රතිපාදනය කළ"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/තිබීම ප්‍රතිපාදනය කර ඇත"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs දත්ත"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS සබල කරන්න"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"උපාංගය යළි අරඹන්නද?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"මෙම සැකසීම වෙනස් කිරීමට ඔබ ඔබේ උපාංගය යළි ඇරඹීමට අවශ්‍යයි."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"යළි අරඹන්න"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"අවලංගු කරන්න"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"ජංගම රේඩියෝ බලය"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM ලිපින පොත බලන්න"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ස්ථාවර ඇමතුම් අංක පෙන්වන්න"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"සේවා ඩයල් කිරීමේ අංක පෙන්වන්න"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS සේවා තත්ත්වය"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS තත්ත්වය"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ලියාපදිංචි වී ඇත"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"ලියාපදිංචි වී නැත"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ලබා ගත හැකිය"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ලබා ගත නොහැකිය"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS ලියාපදිංචි කිරීම: <xliff:g id="STATUS">%1$s</xliff:g>\nවොයිස් ඕවර් LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nවොයිස් ඕවර් WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nවීඩියෝ ඇමතුම්: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT අතුරුමුහුණත: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"සේවාවේ පවතින"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"සේවාවෙන් තොරයි"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"හදිසි ඇමතුම්"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"රේඩියෝව ක්‍රියාවිරහිතයි"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"රෝමිං"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"රෝමිං නැත"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"අක්‍රිය"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"නාද වෙමින්"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"ඇමතුම කෙරෙමින් පවතී"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"විසන්ධි විය"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"සබැඳෙමින්"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"සම්බන්ධිතයි"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"අත්හිටුවා ඇත"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"නොදන්නා"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"බයිට"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"වත්මන් උප හැඳුනුම:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"පෙරනිමි දත්ත SIM පතේ උප හැඳුනුම:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL කලාප පළල (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL කලාප පළල (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"සෙල් ස්ථාන තොරතුරු (අත් හරින ලදී):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE භෞතික නාලිකා වින්‍යාසය:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"සෙල් තොරතුරු නැවුම් කිරීමේ අනුපාතය:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"සියලු සෙල් මිනුම් තොරතුරු:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"දත්ත සේවාව:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"රෝමිං:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ඇමතුම් යළි හරවා යැවීම:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"පණ ගැන්වීමේ සිට PPP යළි සැකසීම් ගණන:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"වත්මන් ජාලය:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"දත්ත ලැබිණි:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"හඬ සේවාව:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"සංඥා ප්‍රබලතාව:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"හඬ ඇමතුම් තත්ත්වය:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"යැවූ දත්ත:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"පණිවිඩය රැඳී සිටී:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"දුරකථන අංකය:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"රේඩියෝ කලාපය තෝරන්න"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"හඬ ජාල වර්ගය:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"දත්ත ජාල වර්ගය:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"දුරකථන දර්ශකය තෝරන්න"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"වඩා කැමති ජාල වර්ගය සකසන්න:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"සත්කාරක නම පිං කරන්න(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"සත්කාරක නම පිං කරන්න(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP සේවාලාභි පරික්ෂාව:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"පිං පරික්ෂාව ධාවනය කරන්න"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"යාවත්කාලීන කරන්න"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"නැවුම් කරන්න"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS පරීක්ෂාව ටොගල කරන්න"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-විශේෂිත තොරතුරු/සැකසීම්"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"රේඩියෝ කලාප ප්‍රකාරය සකසන්න"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"කලාප ලැයිස්තුව පූරණය කරමින්…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"සකසන්න"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"අසාර්ථකයි"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"සාර්ථකයි"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ටැබ්ලට් තොරතුරු"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"දුරකථන තොරතුරු"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"වාහක ප්‍රතිපාදන තතු"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"උත්ප්‍රේරක වාහක ප්‍රතිපාදන"</string>
 </resources>
diff --git a/res/values-sk/config.xml b/res/values-sk/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-sk/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 95e8fef..8163ba1 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Súkromné číslo"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefónny automat"</string>
     <string name="onHold" msgid="6132725550015899006">"Podržaný hovor"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Správa od operátora <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Správa od operátora"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Kód MMI bol spustený"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Kód USSD je spustený..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Kód MMI bol zrušený"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Iba NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferovaný režim siete: preferované WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferovaný režim siete: iba GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferovaný režim siete: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferovaný režim siete: GSM / WCDMA / LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferovaný režim siete: CDMA + LTE / EvDo"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferovaný režim siete: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferovaný režim siete: Globálny"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferovaný režim siete: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Uprednostňovaný režim siete: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferovaný režim siete: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferovaný režim siete: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferovaný režim siete: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferovaný režim siete: iba NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferovaný režim siete: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferovaný režim siete: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferovaný režim siete NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferovaný režim siete: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferovaný režim siete: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferovaný režim siete: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferovaný režim siete: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferovaný režim siete: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferovaný režim siete: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferovaný režim siete: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Volanie"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Sieť"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Zlepšený režim 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Viac kategórií"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Viac kategórií povolených"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Viacero kategórií zakázané"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (odporúčané)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (odporúčané)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (odporúčané)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globálne"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Odstraňuje sa povolené číslo…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Povolené číslo bolo odstránené."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Povolené čísla neboli aktualizované. Zadali ste nesprávny kód PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Režim povolených čísel nebol aktualizovaný, pretože číslo obsahuje viac než 20 číslic."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Režim povolených čísel nebol aktualizovaný, pretože číslo obsahuje viac než maximálny počet povolených číslic (<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>)."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Povolené čísla neboli aktualizované. Kód PIN2 je nesprávny alebo bolo telefónne číslo odmietnuté."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operácia s povolenými číslami zlyhala."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Prebieha čítanie zo SIM karty..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Hovor nie je možné uskutočniť. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nie je číslo tiesňového volania."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Hovor nie je možné uskutočniť. Vytočte číslo tiesňového volania."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Tiesňové volania nie sú k dispozícii"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Zadávať kódy PIN a PUK môže len vlastník zariadenia."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polícia"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Záchranka"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Hasiči"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Posielanie okamžitého textu (RTT) počas hovorov"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Povoliť posielanie správ počas hlasového hovoru"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Okamžitý text pomáha volajúcim, ktorí nepočujú, majú problémy so sluchom, rečovú poruchu alebo potrebujú viac ako samotný hlas.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Ďalšie informácie&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – Okamžitý text poslaný počas hovoru sa uloží ako prepis správ\n       &lt;br&gt; – Okamžitý text nie je k dispozícii počas videohovorov"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Poznámka: Okamžitý text nie je počas roamingu k dispozícii."</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Textový telefón vypnutý"</item>
     <item msgid="1449091874731375214">"Úplný textový telefón"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Áno"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nie"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Zatvoriť"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefón je v režime tiesňového spätného volania"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="few">Telefón bude v režime tiesňového spätného volania <xliff:g id="COUNT_1">%s</xliff:g> minúty.\nChcete tento režim ukončiť?</item>
+      <item quantity="many">Telefón bude v režime tiesňového spätného volania <xliff:g id="COUNT_1">%s</xliff:g> minúty.\nChcete tento režim ukončiť?</item>
+      <item quantity="other">Telefón bude v režime tiesňového spätného volania <xliff:g id="COUNT_1">%s</xliff:g> minút.\nChcete tento režim ukončiť?</item>
+      <item quantity="one">Telefón bude v režime tiesňového spätného volania <xliff:g id="COUNT_0">%s</xliff:g> minútu.\nChcete tento režim ukončiť?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Služba"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Nastavenie"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nenastavené&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Blokovanie hovorov bolo deaktivované"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Zmeniť heslo"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Zmeniť heslo na blokovanie hovorov"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Heslo na blokovanie hovorov sa nepodarilo zmeniť."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Heslo na blokovanie hovorov sa nepodarilo zmeniť"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Heslá sa nezhodujú"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Zadajte heslo so štyrmi číslicami"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Heslo bolo zmenené"</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Potvrďte heslo"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Zadajte heslo"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Nastavenia blokovania hovorov"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deaktivovať všetky nastavenia blokovania hovorov?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Sieť je zaneprázdnená. Skúste svoj hovor zopakovať neskôr."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Sieť je zahltená. O pomoc požiadajte svojho mobilného operátora."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Hovor bol odklonený."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Ak chcete používať službu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, skontrolujte, či máte pre SIM kartu <xliff:g id="SIM_NUMBER">%2$d</xliff:g> zapnuté mobilné dáta. Môžete to zmeniť v nastaveniach mobilnej siete."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Ak chcete používať službu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, skontrolujte, či máte pre SIM kartu <xliff:g id="SIM_NUMBER">%2$d</xliff:g> zapnuté mobilné dáta a dátový roaming. Môžete to zmeniť v nastaveniach mobilnej siete."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Zavrieť"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Povoliť dátové pripojenie"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Zakázať dátové pripojenie"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Poskytované VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Poskytované videohovory"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Poskytované volanie cez Wi‑Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Zaistenie EAB/Presence"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Údaje CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Aktivovať DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Chcete reštartovať zariadenie?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Ak chcete zmeniť nastavenie, musíte reštartovať zariadenie."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reštartovať"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Zrušiť"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Sila signálu GSM"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Zobraziť adresár SIM karty"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Zobraziť povolené čísla"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Zobraziť čísla volaní služieb"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Stav služby IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Stav IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrované"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Bez registrácie"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"K dispozícii"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nie je k dispozícii"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registrácia IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nHlas cez LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nHlas cez Wi‑Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideohovory: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nRozhranie UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"V prevádzke"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Mimo prevádzky"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Len tiesňové volania"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Rádio je vypnuté"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Bez roamingu"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Nečinné"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Prezváňa sa"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Prebieha hovor"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Odpojené"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Pripája sa"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Pripojené"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Pozastavené"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Neznáme"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pakety"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"B"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Aktuálny podradený identifikátor:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Podradený identifikátor predvolenej dátovej SIM karty:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Rýchlosť pripojenia DL (kB/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Rýchlosť pripojenia UL (kB/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informácie o polohe mobilnej siete (podpora bola ukončená):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurácia fyzického kanála LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frekvencia obnovenia informácií o mobilnej sieti:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Všetky informácie o meraní mobilnej siete:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Dátová služba:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Presmerovanie hovoru:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Počet obnovení protokolu PPP od spustenia:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Aktuálna sieť:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Prijaté dáta:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Hlasová služba:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Sila signálu:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Stav hlasového hovoru:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Odoslané dáta:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Čakajúca správa:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefónne číslo:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Vybrať pásmo rádia"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Typ hlasovej siete:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Typ dátovej siete:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Vybrať index telefónu"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Nastaviť preferovaný typ siete:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Testovať dostupnosť (ping) názvu hostiteľa (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Testovať dostupnosť (ping) názvu hostiteľa (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test klienta HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Spustiť testovanie dostupnosti (ping)"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Aktualizovať"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Obnoviť"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Prepnúť kontrolu DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informácie alebo nastavenia špecifické pre výrobcu OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Nastaviť režim rádiového pásma"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Načítava sa zoznam pásiem…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Nastaviť"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Neúspešné"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Úspešné"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informácie o tablete"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informácie o telefóne"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informácie o poskytovaní služieb operátorom"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Spustiť poskytovanie služieb operátorom"</string>
 </resources>
diff --git a/res/values-sl/config.xml b/res/values-sl/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-sl/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index a3447da..58a087d 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Zasebna številka"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefonska govorilnica"</string>
     <string name="onHold" msgid="6132725550015899006">"Zadržano"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Sporočilo <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Sporočilo operaterja"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Koda MMI zagnana"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Koda USSD se izvaja ..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Koda MMI preklicana"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Samo NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Prednostni način omrežja: prednostno WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Prednostni način omrežja: samo GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Prednostni način omrežja: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Prednostni način omrežja: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Prednostni način omrežja: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Prednostni način omrežja: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Prednostni način omrežja: globalno"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Prednostni način omrežja: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Prednostni omrežni način: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Prednostni način omrežja: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Prednostni način omrežja: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Prednostni način omrežja: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Prednostni način omrežja: samo NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Prednostni način omrežja: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Prednostni način omrežja: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Prednostni način omrežja: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Prednostni način omrežja: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Prednostni način omrežja: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Prednostni način omrežja: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Prednostni način omrežja: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Prednostni način omrežja: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Prednostni način omrežja: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Prednostni način omrežja: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Klicanje"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Omrežje"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Izboljšan način 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Več kategorij"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Omogočenih več kategorij"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Več kategorij onemogočenih"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (priporočeno)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (priporočeno)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (priporočeno)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globalno"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Brisanje zapore odhodnega klica ..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Zapora odhodnega klica izbrisana."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN ni bil posodobljen, ker ste vnesli napačno kodo PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN ni bil posodobljen, ker število presega 20 mest."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN ni bil posodobljen, ker število presega <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> mest."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN ni bil posodobljen. Koda PIN2 je bila napačna ali pa je bila telefonska številka zavrnjena."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Postopek za omejeno klicanje ni uspel."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Branje kartice SIM ..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Klicanje ni mogoče. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ni številka za klic v sili."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Klicanje ni mogoče. Opravite klic v sili."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Klicanje v sili ni na voljo"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Samo lastnik naprave lahko vnese kodi PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policija"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Nujna medicinska pomoč"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Gasilci"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Klic s sprotnim besedilom (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Dovoli izmenjavo sporočil v glasovnem klicu"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Funkcija RTT pomaga klicateljem, ki so gluhi, naglušni, imajo govorno motnjo ali potrebujejo več kot samo glas.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Več o tem&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – Klici RTT se shranijo kot prepis sporočila\n       &lt;br&gt; – RTT ni na voljo pri videoklicih"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Opomba: RTT ni na voljo med gostovanjem"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Način TTY izklopljen"</item>
     <item msgid="1449091874731375214">"TTY poln"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ne"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Opusti"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon je v načinu za povratni klic v sili"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Telefon bo v načinu za povratni klic v sili čez <xliff:g id="COUNT_1">%s</xliff:g> minuto.\nAli želite zapustiti ta način?</item>
+      <item quantity="two">Telefon bo v načinu za povratni klic v sili čez <xliff:g id="COUNT_1">%s</xliff:g> minuti.\nAli želite zapustiti ta način?</item>
+      <item quantity="few">Telefon bo v načinu za povratni klic v sili čez <xliff:g id="COUNT_1">%s</xliff:g> minute.\nAli želite zapustiti ta način?</item>
+      <item quantity="other">Telefon bo v načinu za povratni klic v sili čez <xliff:g id="COUNT_1">%s</xliff:g> minut.\nAli želite zapustiti ta način?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Storitev"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Nastavitev"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ni nastavljeno&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Zapora klicev je deaktivirana"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Sprememba gesla"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Spremenite geslo za zaporo klicev"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Gesla za zaporo klicev ni mogoče spremeniti."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Gesla za zaporo klicev ni mogoče spremeniti"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Gesli se ne ujemata"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Vnesite geslo s 4 številkami"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Geslo je spremenjeno."</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Potrditev gesla"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Vnesite geslo"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Nastavitve zapore klicev"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Želite deaktivirati vse nastavitve za zaporo klicev?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Omrežje je zasedeno. Poskusite znova poklicati pozneje."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Omrežje je zasedeno. Za pomoč se obrnite na mobilnega operaterja."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Klic je preusmerjen z druge številke."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Če želite uporabiti storitev <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, najprej preverite, ali je prenos podatkov v mobilnem omrežju vklopljen za kartico SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. To izbiro lahko spremenite v nastavitvah mobilnega omrežja."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Če želite uporabiti storitev <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, najprej preverite, ali sta prenos podatkov v mobilnem omrežju in podatkovno gostovanje vklopljena za kartico SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Ti izbiri lahko spremenite v nastavitvah mobilnega omrežja."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Opusti"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Omogočanje podatkovne povezave"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Onemogočanje podatkovne povezave"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Pripravljeno za uporabo tehnologije VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videoklicanje je pripravljeno"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Klicanje prek Wi-Fi-ja je pripravljeno"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/prisotnost omogočena"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Podatki Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Omogoči DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Vnovični zagon?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Če želite spremeniti to nastavitev, znova zaženite napravo."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Vnovičen zagon"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Prekliči"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Moč radia mobilne naprave"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži imenik na kartici SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži številke za zaporo odhodnih klicev"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži številke za klicanje storitev"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Stanje storitve IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Stanje storitve IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrirano"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Niste registrirani"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Na voljo"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Ni na voljo"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registracija storitve IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nGovor prek povezave LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nGovor prek povezave WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideoklici: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nVmesnik UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"V uporabi"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ne deluje"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Samo klici v sili"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Izklopi radio"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Gostovanje"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ni gostovanja"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Nedejavno"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Zvonjenje"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Aktivni klic"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Brez povezave"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Vzpostavljanje povezave"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Povezano"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Onemogočeno"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Neznano"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"B"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Trenutni ID naročnine:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ID naročnine privzete kartice SIM za prenos podatkov:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Pasovna širina za prenos (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Pasovna širina za nalaganje (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Podatki o lokaciji celice (zastarelo):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracija fizičnega kanala LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frekvenca osveževanja podatkov o celici:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Vsi podatki o meritvah celice:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Podatkovna storitev:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Gostovanje:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Preusmeritev klica:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Število ponastavitev PPP od zagona:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Trenutno omrežje:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Prejeti podatki:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Glasovna storitev:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Moč signala:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Stanje glasovnega klica:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Poslani podatki:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Čakajoče sporočilo:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonska številka:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Izbira radijskega območja"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Vrsta glasovnega omrežja:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Vrsta podatkovnega omrežja:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Izberite indeks telefona"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Nastavitev vrste prednostnega omrežja:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Preverjanje imena gostitelja (www.google.com) za IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Preverjanje imena gostitelja (www.google.com) za IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Preskus odjemalca HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Izvedba preskusa ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Posodobi"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Osveži"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Preklop preverjanja DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informacije/nastavitve za OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Nastavljanje načina radijskega območja"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Nalaganje seznama frekvenčnih pasov …"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Nastavi"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Neuspešno"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Uspelo"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Podatki o tabličnem računalniku"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacije o telefonu"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Podatki o omogočanju uporabe operaterja"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Sproži omogočanje uporabe operaterja"</string>
 </resources>
diff --git a/res/values-sq/config.xml b/res/values-sq/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-sq/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 6f98812..efba6c5 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Numër privat"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefon me pagesë"</string>
     <string name="onHold" msgid="6132725550015899006">"Në pritje"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mesazh nga <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mesazh i operatorit celular"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Kodi MMI filloi"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Kodi USSD po punon…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Kodi MMI u anulua"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Vetëm NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modaliteti i preferuar i rrjetit: preferohet WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modaliteti i preferuar i rrjetit: vetëm GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Modaliteti i preferuar i rrjetit: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Modaliteti i preferuar i rrjetit: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Modaliteti i preferuar i rrjetit: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Modaliteti i preferuar i rrjetit: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Modaliteti i preferuar i rrjetit: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Modaliteti i preferuar i rrjetit: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modaliteti i preferuar i rrjetit: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Modaliteti i preferuar i rrjetit: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Modaliteti i preferuar i rrjetit: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Modaliteti i preferuar i rrjetit: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Modaliteti i preferuar i rrjetit: Vetëm NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Modaliteti i preferuar i rrjetit: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Modaliteti i preferuar i rrjetit: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Modaliteti i preferuar i rrjetit: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Modaliteti i preferuar i rrjetit: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Modaliteti i preferuar i rrjetit: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Modaliteti i preferuar i rrjetit: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Modaliteti i preferuar i rrjetit: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Modaliteti i preferuar i rrjetit: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Modaliteti i preferuar i rrjetit: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Modaliteti i preferuar i rrjetit: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Po telefonon"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Rrjeti"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modaliteti i përparuar 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-kategoria"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"\"Multi-kategoria\" u aktivizua"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"\"Multi-kategoria\" u çaktivizua"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (rekomandohet)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (rekomandohet)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (rekomandohet)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Po fshin numrin me telefonim të përzgjedhur..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Numri me telefonim të përzgjedhur u fshi."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN-ja nuk u përditësua sepse shkrove një PIN të pasaktë."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Funksioni FDN nuk u përditësua sepse numri i kalon 20 shifra."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Veçoria FDN nuk u përditësua sepse numri i kalon <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> shifra."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN-ja nuk u përditësua. PIN2-shi ishte i pasaktë ose numri i telefonit u refuzua."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operacioni FDN dështoi"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Po lexon nga karta SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Nuk mund të telefonohet. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nuk është numër urgjence."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Nuk mund të telefonohet. Formo një numër urgjence."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Telefonatat e urgjencës nuk ofrohen"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Vetëm zotëruesi i pajisjes mund të futë kodet PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policia"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulancë"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Zjarr"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Telefonata me tekst në kohë reale (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Lejo mesazhet brenda një telefonate zanore"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Funksioni RTT ndihmon telefonuesit që janë të shurdhër, kanë vështirësi me dëgjimin, kanë një aftësi të kufizuar të të folurit ose që kanë nevojë për më shumë se thjesht zërin.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Mëso më shumë&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Telefonatat RTT ruhen si një transkript mesazhi\n       &lt;br&gt; - Funksioni RTT nuk ofrohet për telefonatat me video"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Shënim. Veçoria RTT nuk ofrohet kur je në roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY i çaktivizuar"</item>
     <item msgid="1449091874731375214">"TTY i plotë"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Po"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Jo"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Injoro"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefoni është në modalitetin e kthimit të telefonatës së urgjencës"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Deri në <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefoni do të jetë në modalitetin e kthimit të telefonatës së urgjencës për <xliff:g id="COUNT_1">%s</xliff:g> minuta.\nDëshiron të dalësh tani?</item>
+      <item quantity="one">Telefoni do të jetë në modalitetin e kthimit të telefonatës së urgjencës për <xliff:g id="COUNT_0">%s</xliff:g> minutë.\nDëshiron të dalësh tani?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Shërbimi"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Konfigurimi"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;I pavendosur&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Bllokimi i telefonatave u çaktivizua"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Ndrysho fjalëkalimin"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Ndrysho fjalëkalimin për bllokimin e telefonatave"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Fjalëkalimi për bllokimin e telefonatave nuk mund të ndryshohet."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Fjalëkalimi për bllokimin e telefonatave nuk mund të ndryshohet"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Fjalëkalimet nuk përputhen"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Fut një fjalëkalim me 4 numra"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Fjalëkalimi u ndryshua"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Konfirmo fjalëkalimin"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Fut fjalëkalimin"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Cilësimet e bllokimit të telefonatave"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Të çaktivizohen të gjitha cilësimet e bllokimit të telefonatave?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Rrjeti është i zënë. Provo ta kryesh telefonatën përsëri më vonë."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Rrjeti është i mbingarkuar. Kontakto me operatorin tënd celular për ndihmë."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Telefonata u devijua."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Për të përdorur <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, sigurohu që të dhënat celulare janë të aktivizuara për kartën SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Mund ta ndryshosh këtë te cilësimet e rrjetit celular."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Për të përdorur <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, sigurohu që të dhënat celulare dhe roaming për të dhënat janë aktivizuar për kartën SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Mund ta ndryshosh këtë te cilësimet e rrjetit celular."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Hiq"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Aktivizo lidhjen e të dhënave"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Çaktivizo lidhjen e të dhënave"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE e përgatitur"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Telefonata me video u parapërgatit"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Telefonata me Wifi u parapërgatit"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/prania është parapërgatitur"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Të dhënat e Crbs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Aktivizo DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Të riniset pajisja?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Duhet të rinisësh pajisjen tënde për të ndryshuar këtë cilësim."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Rinis"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Anulo"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Fuqia e radios së rrjetit celular"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Shiko librin e adresave të kartës SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Shiko numrat me telefonim të përzgjedhur"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Shiko numrat e telefonit të shërbimit"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Statusi i Shërbimit IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Statusi IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"I regjistruar"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"I paregjistruar"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Ofrohet"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nuk ofrohet"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Regjistrimi IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nZëri përmes LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nZëri përmes Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nTelefonatat me video: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nNdërfaqja UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Në shërbim"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Jashtë shërbimit"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Vetëm telefonata urgjence"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radioja joaktive"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Jo në roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Në gjendje joaktive"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Po bie zilja"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Telefonatë në vazhdim"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Shkëputur"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Po lidhet"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Lidhur"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Pezulluar"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"E panjohur"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"paketa"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bajte"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ID-ja dytësore aktuale:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ID-ja dytësore e kartës SIM të parazgjedhur të të dhënave:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Gjerësia e bandës DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Gjerësia e bandës UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacionet e vendndodhjes të rrjetit celular (e vjetruar):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurimi i kanalit fizik LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Shpejtësia e rifreskimit të informacioneve të rrjetit celular"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Të gjitha informacionet e matjes së rrjetit celular:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Shërbimi i të dhënave:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Ridrejtimi i telefonatës:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Numri i rivendosjeve të PPP-së që nga rifillimi:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Rrjeti aktual:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Të dhënat e marra:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Shërbimi zanor:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Fuqia e sinjalit:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Statusi i telefonatës zanore:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Të dhënat e dërguara:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mesazh në pritje:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Numri i telefonit:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Përzgjidh brezin e radios"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Lloji i rrjetit të zërit:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Lloji i rrjetit të të dhënave:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Zgjidh indeksin e telefonit"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Cakto llojin e preferuar të rrjetit:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Verifiko emrin e pritësit (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Verifiko emrin e pritësit (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Testi i klientit HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ekzekuto testin e verifikimit \"ping\""</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Përditëso"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Rifresko"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Ndrysho kontrollin e DNS-së"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informacion/cilësime specifike për OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Cakto modalitetin e brezit të radios"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Po ngarkon listën e brezave…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Cakto"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Pa sukses"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Me sukses!"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informacion mbi tabletin"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacioni i telefonit"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informacionet e përgatitjes së operatorit celular"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktivizo përgatitjen e operatorit celular"</string>
 </resources>
diff --git a/res/values-sr/config.xml b/res/values-sr/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-sr/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index ce8791b..ac9c23a 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Приватан број"</string>
     <string name="payphone" msgid="7936735771836716941">"Телефонска говорница"</string>
     <string name="onHold" msgid="6132725550015899006">"На чекању"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> – порука"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Порука мобилног оператера"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Покренут је MMI кôд."</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD кôд је покренут…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI кôд је отказан"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Само NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Жељени режим мреже: WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Жељени режим мреже: само GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Жељени режим мреже: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Жељени режим мреже: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Жељени режим мреже: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Жељени режим мреже: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Жељени режим мреже: Глобално"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Жељени режим мреже: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Жељени мрежни режим: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Жељени режим мреже: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Жељени режим мреже: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Жељени режим мреже: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Жељени режим мреже: само NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Жељени режим мреже: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Жељени режим мреже: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Жељени режим мреже: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Жељени режим мреже: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Жељени режим мреже: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Жељени режим мреже: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Жељени режим мреже: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Жељени режим мреже: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Жељени режим мреже: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Жељени режим мреже: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Позивање"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Мрежа"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Побољшани 4G LTE режим"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Више категорија"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Омогућено је више категорија"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Онемогућено је више категорија"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (препоручено)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (препоручено)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (препоручено)"</string>
     <string name="network_global" msgid="3289646154407617631">"Глобално"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Брисање броја за фиксно бирање…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Избрисан је број за фиксно бирање."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Број за фиксно бирање није ажуриран јер сте унели нетачан PIN кôд."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Број за фиксно бирање није ажуриран јер има више од 20 цифара."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Број за фиксно бирање није ажуриран јер има превише цифара (више од <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>)."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN није ажуриран. PIN2 је нетачан или је број телефона одбачен."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Радња са бројем за фиксно бирање није успела."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Чита се са SIM картице…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Позив није успео. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> није број за хитне случајеве."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Позив није успео. Позовите број за хитне случајеве."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Упућивање хитних позива није доступно"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Само власник уређаја може да уноси PIN/PUK кодове."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Полиција"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Хитна помоћ"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Ватрогасци"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Позив са текстом у реалном времену (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Дозволите размену порука у аудио позиву"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Текст у реалном времену (RTT) помаже позиваоцима који су глуви, слабо чују, имају тешкоће у говору или којима је потребно нешто више од гласа.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Сазнајте више&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT позиви се чувају као транскрипт поруке\n       &lt;br&gt; – RTT није доступан за видео позиве"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Напомена: Текст у реалном времену није доступан у ромингу"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY је искључен"</item>
     <item msgid="1449091874731375214">"Комплетни TTY"</item>
@@ -611,6 +639,13 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Да"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Не"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Одбаци"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефон је у режиму за хитан повратни позив"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"До <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Телефон ће <xliff:g id="COUNT_1">%s</xliff:g> минут бити у режиму за хитан повратни позив.\nЖелите сад да изађете из њега?</item>
+      <item quantity="few">Телефон ће <xliff:g id="COUNT_1">%s</xliff:g> минута бити у режиму за хитан повратни позив.\nЖелите сад да изађете из њега?</item>
+      <item quantity="other">Телефон ће <xliff:g id="COUNT_1">%s</xliff:g> минута бити у режиму за хитан повратни позив.\nЖелите сад да изађете из њега?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Услуга"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Подешавање"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Није подешено&gt;"</string>
@@ -750,7 +785,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Ограничавање позива је деактивирано"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Промените лозинку"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Промените лозинку за ограничавање позива"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Не можете да промените лозинку за ограничавање позива."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Не можете да промените лозинку за ограничавање позива"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Лозинке се не подударају"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Унесите лозинку од 4 броја"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Лозинка је промењена"</string>
@@ -759,7 +794,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Потврдите лозинку"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Унесите лозинку"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Подешавања ограничавања позива"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Желите ли да деактивирате сва подешавања ограничавања позива?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Мрежа је заузета. Пробајте поново да упутите позив касније."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Мрежа је загушена. Затражите помоћ од мобилног оператера."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Позив је преусмерен."</string>
@@ -789,4 +823,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Да бисте користили <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, уверите се да су за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> укључени мобилни подаци. То можете да промените у подешавањима мобилне мреже."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Да бисте користили <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, уверите се да су за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> укључени мобилни подаци и пренос података у ромингу. То можете да промените у подешавањима мобилне мреже."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Одбаци"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Омогући везу за пренос података"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Онемогући везу за пренос података"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Додељено за VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Видео позиви су додељени"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Позивање преко Wi-Fi-ја је додељено"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Додељен је EAB/присуство"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Подаци CBRS-а"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Омогући DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Желите да рестартујете уређај?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Треба да рестартујте уређај да бисте променили ово подешавање."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Рестартуј"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Откажи"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Напајање за радио на мобилним уређајима"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Прикажи адресар SIM-а"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Прикажи бројеве за фиксно бирање"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Прикажи бројеве за сервисно бирање"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Статус услуге IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Статус IMS-а"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Регистровано je"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Није регистровано"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Доступно"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Није доступно"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Регистрација IMS-а: <xliff:g id="STATUS">%1$s</xliff:g>\nГлас преко LTE-а: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nГлас преко Wi-Fi-ја: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВидео позив: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT интерфејс: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Ради"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Не ради"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Само хитни позиви"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Радио је искључен"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роминг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Није у ромингу"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Неактивно"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Звони"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Позив је у току"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Веза је прекинута"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Повезује се"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Повезано је"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Суспендовано"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Непознато"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"пак."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"бајт(ов)а"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"ИД клијента"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Актуелни subID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubID подразумеваног SIM-а за податке:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL пропусни опсег (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL пропусни опсег (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Информације о локацији предајника (застарело):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфигурација LTE физичког канала:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Учесталост освежавања информација о предајнику:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Све информације о мерењу за предајник:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Услуга преноса података:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роминг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Преусмеравање позива:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Број PPP ресетовања од укључивања:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Актуелна мрежа:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Примљени подаци:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Гласовна услуга:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Јачина сигнала:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Статус аудио позива:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Послати подаци:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Порука на чекању:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Број телефона:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Изаберите радијски опсег"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Тип гласовне мреже:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Тип мреже за пренос података:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Изаберите индекс телефона"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Подесите жељени тип мреже:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"IPv4 имена хоста за пинговање (www.google.com):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"IPv6 имена хоста за пинговање (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Тест за HTTP клијента:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Покрени тест пинговања"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Ажурирај"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Освежи"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Укључи/искључи проверу DNS-а"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Информације/подешавања специфична за произвођача оригиналне опреме"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Подесите режим радијског опсега"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Учитава се листа опсега…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Подеси"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Није успело"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Успело је"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Информације о таблету"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Информације о телефону"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Информације о додели мобилног оператера"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Покретање доделе мобилног оператера"</string>
 </resources>
diff --git a/res/values-sv/config.xml b/res/values-sv/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-sv/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 5c73359..d32893b 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privat nummer"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefonautomat"</string>
     <string name="onHold" msgid="6132725550015899006">"Parkerat"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>-meddelande"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operatörsmeddelande"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-kod körs"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-kod körs…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-koden har annullerats"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Endast NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Föredraget nätverksläge: Föredrar WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Föredraget nätverksläge: Endast GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Föredraget nätverksläge: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Föredraget nätverksläge: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Föredraget nätverksläge: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Föredraget nätverksläge: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Föredraget nätverksläge: globlat"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Föredraget nätverksläge: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Föredraget nätverksläge: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Föredraget nätverksläge: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Föredraget nätverksläge: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Föredraget nätverksläge: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Föredraget nätverksläge: endast NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Föredraget nätverksläge: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Föredraget nätverksläge: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Föredraget nätverksläge: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Föredraget nätverksläge: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Föredraget nätverksläge: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Föredraget nätverksläge: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Föredraget nätverksläge: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Föredraget nätverksläge: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Föredraget nätverksläge: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Föredraget nätverksläge: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Ringer upp"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Nätverk"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Förbättrat 4G LTE-läge"</string>
@@ -379,6 +404,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-kategori"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multikategori aktiverad"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multikategori inaktiverad"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (rekommenderas)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (rekommenderas)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (rekommenderas)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globalt"</string>
@@ -443,7 +469,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Tar bort fast nummer…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Det fasta numret har tagits bort."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN uppdaterades inte eftersom du skrev en felaktig PIN-kod."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN uppdaterades inte eftersom numret översteg 20 siffror."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN uppdaterades inte eftersom numret översteg <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> siffror."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN uppdaterades inte. Antingen har du angivit fel PIN2, eller så avvisades telefonnumret."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Det gick inte att ringa till fast uppringningsnummer."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Läser från SIM-kort…"</string>
@@ -534,6 +560,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Det gick inte att ringa. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> är inget nödnummer."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Det gick inte att ringa. Slå ett nödnummer."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Nödsamtal ej tillgängligt"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Endast enhetens ägare får ange PIN/PUK-koder."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polis"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulans"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Brand"</string>
@@ -561,6 +588,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"RTT-samtal (realtidstext)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Tillåt meddelanden i röstsamtal"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT hjälper döva, hörselskadade och personer med talsvårigheter eller som behöver mer än endast röst.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Läs mer&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT-samtal sparas som en meddelandetranskription\n       &lt;br&gt; - RTT är inte tillgängligt för videosamtal"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Obs! RTT är inte tillgängligt vid roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY av"</item>
     <item msgid="1449091874731375214">"TTY är full"</item>
@@ -613,6 +641,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nej"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ta bort permanent"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefonen är i läget för återuppringning vid nödsamtal"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Till <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefonen kommer att vara i läget för återuppringning vid nödsamtal i <xliff:g id="COUNT_1">%s</xliff:g> minuter.\nVill du avsluta nu?</item>
+      <item quantity="one">Telefonen kommer att vara i läget för återuppringning vid nödsamtal i <xliff:g id="COUNT_0">%s</xliff:g> minut.\nVill du avsluta nu?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Tjänst"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Konfiguration"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Har inte angetts&gt;"</string>
@@ -752,7 +786,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Samtalsspärren har inaktiverats"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Ändra lösenord"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Ändra lösenord för samtalsspärr"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Det går inte att ändra lösenordet för samtalsspärr"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Lösenorden stämmer inte överens"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Ange ett lösenord med 4 siffror"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Lösenordet har ändrats"</string>
@@ -761,7 +795,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Bekräfta lösenord"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Ange lösenord"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Inställningar för samtalsspärr"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Nätverket är upptaget. Försök att ringa igen senare."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Nätverket är överbelastat. Kontakta mobiloperatören för hjälp."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Samtal avböjt."</string>
@@ -791,4 +824,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Använd <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> genom att säkerställa att mobildata är aktiverat för SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Det går att ändra i inställningarna för mobilt nätverk."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Använd <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> genom att säkerställa att mobildata och dataroaming är aktiverat för SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Det går att ändra i inställningarna för mobilt nätverk."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Stäng"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Aktivera dataanslutning"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Inaktivera dataanslutning"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-administrerad"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videosamtal tillhandahålls"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi-samtal tillhandahålls"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence tillhandahålls"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Data via CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Aktivera DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Vill du starta om enheten?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Du måste starta om enheten för att ändra den här inställningen."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Starta om"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Avbryt"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Strömförsörjning för mobilradio"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Visa SIM-adressbok"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Visa Fasta nummer"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Visa tjänstenummer"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status för IMS-tjänst"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrerad"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Inte registrerad"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Tillgänglig"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Inte tillgängligt"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-registrering: <xliff:g id="STATUS">%1$s</xliff:g>\nRöst via LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nRöst via Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideosamtal: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-gränssnitt: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"I tjänst"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ur funktion"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Endast nödsamtal"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Stäng av radio"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ingen roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inaktiv"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ringer"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Pågående samtal"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Frånkopplad"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Ansluter"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Ansluten"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Tillfälligt avstängt"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Okänt"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"paket"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Nuvarande subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId för standarddata på SIM-kortet:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Bandbredd för nedladdning (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Bandbredd för uppladdning (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Platsinformation för mast (utfasad):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fysisk kanalkonfiguration för LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frekvens för uppdatering av mastinformation:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alla information om mastmätning:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datatjänst:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI-kod:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Vidarekoppling av samtal:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Antal återställningar av köpkraftsparitet sedan start:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Aktuellt nätverk:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Mottagen data:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Rösttjänst:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signalstyrka:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status på videosamtal:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Skickad data:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Meddelande väntar:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonnummer:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Välj radioband"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Nätverkstyp för röst:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Typ av datanätverk:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Välj telefonindex"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Ställ in önskad nätverkstyp:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Pinga värdnamn(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Pinga värdnamn(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test av HTTP-klient:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Köra pingtest"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Uppdatera"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Uppdatera"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Aktivera och inaktivera DNS-kontroll"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specifik information/inställningar"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Konfigurera radiobandsläget"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Läser in bandlista …"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Ange"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Misslyckades"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Lyckades"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Information om surfplattan"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefoninformation"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Information om operatörsadministration"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktivera operatörsadministration"</string>
 </resources>
diff --git a/res/values-sw/config.xml b/res/values-sw/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-sw/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index d10220b..472bd37 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">" Number isiyojulikana"</string>
     <string name="payphone" msgid="7936735771836716941">"Simu ya kulipia"</string>
     <string name="onHold" msgid="6132725550015899006">"Inangoja"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Ujumbe wa <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Ujumbe wa Mtoa Huduma"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Msimbo wa MMI  umeanza"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Msimbo wa USSD unafungua"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Msimbo wa MMI umeghairiwa"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR pekee"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modi pendekezwa ya mtandao: WCDMA pendekezwa"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modi pendekezwa ya mtandao: GSM  pekee"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Hali ya mtandao inayopendelewa: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Hali ya mtandao inayopendelewa: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Hali ya mtandao inayopendelewa: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Hali ya mtandao inayopendelewa: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Hali ya mtandao inayopendelewa: Ulimwenguni Kote"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Hali ya mtandao inayopendelewa: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Hali ya mtandao inayopendelewa: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Hali ya mtandao inayopendelewa: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Hali ya mtandao inayopendelewa: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Hali ya mtandao inayopendelewa: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Hali ya mtandao inayopendelewa: NR pekee"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Hali ya mtandao inayopendelewa: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Hali ya mtandao inayopendelewa: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Hali ya mtandao inayopendelewa: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Hali ya mtandao inayopendelewa: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Hali ya mtandao inayopendelewa: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Hali ya mtandao inayopendelewa: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Hali ya mtandao inayopendelewa: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Hali ya mtandao inayopendelewa: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Hali ya mtandao inayopendelewa: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Hali ya mtandao inayopendelewa: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Kupiga simu"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Mtandao"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Hali Iliyoimarishwa ya 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Kategoria anuwai"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Kategoria anuwai imewezeshwa"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Kategoria anuwai imelemazwa"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (inayopendekezwa)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (inapendekezwa)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (inapendekezwa)"</string>
     <string name="network_global" msgid="3289646154407617631">"Ulimwenguni Kote"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Inafuta nambari ya upigaji simu uliobanwa..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Nambari ya upigaji simu uliobanwa imefutwa"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN haikusasishwa kwa sababu uliweka PIN isiyo sahihi."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN haikusasishwa kwa sababu nambari inazidi tarakimu 20."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN haijasasishwa kwa sababu nambari inazidi tarakimu <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN haikusasishwa. PIN2 haikuwa sahihi, au namba ya simu ilikataliwa."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Utendakazi wa FDN ulishindwa."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Inasoma kutoka kwa SIM kadi…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Haiwezi kupiga simu. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> si nambari ya dharura."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Haiwezi kupiga simu. Piga nambari ya dharura."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Upigaji simu ya dharura haupatikani"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Mmiliki wa kifaa pekee ndiye anaweza kuweka misimbo ya PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polisi"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Gari la wagonjwa"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Moto"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Kutuma SMS katika Muda Halisi (RTT) wakati wa kupiga simu"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Ruhusu uandikaji wa ujumbe wakati unapiga simu"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT huwasaidia wapigaji simu ambao ni viziwi, wasioweza kusikia vyema, wenye matatizo ya kuzungumza au wanaohitaji kufanya zaidi ya kuzungumza.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Pata maelezo zaidi&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Simu za RTT huhifadhiwa kama manukuu ya ujumbe\n       &lt;br&gt; - RTT haipatikani kwa simu za video"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Kumbuka: RTT haipatikani wakati unatumia mitandao ya ng\'ambo"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Zima TTY"</item>
     <item msgid="1449091874731375214">"TTY Kamili"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ndiyo"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Hapana"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ondoa"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Simu hii iko katika hali ya kuomba upigiwe simu ya dharura"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Hadi <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Simu hii itakuwa katika hali ya kuomba upigiwe simu ya dharura kwa dakika <xliff:g id="COUNT_1">%s</xliff:g>.\nJe, ungependa kuondoka sasa?</item>
+      <item quantity="one">Simu hii itakuwa katika hali ya kuomba upigiwe simu ya dharura kwa dakika <xliff:g id="COUNT_0">%s</xliff:g>.\nJe, ungependa kuondoka sasa?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Huduma"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Weka mipangilio"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Haijawekwa&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Mipangilio ya kuzuia upigaji simu imezimwa"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Badilisha nenosiri"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Badilisha nenosiri la kuzuia upigaji simu"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Imeshindwa kubadilisha nenosiri la kuzuia upigaji simu."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Haiwezi kubadilisha nenosiri la kuzuia upigaji simu"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Manenosiri hayalingani"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Weka nenosiri lenye tarakimu 4"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Nenosiri limebadilishwa"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Thibitisha nenosiri"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Weka nenosiri"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Mipangilio ya kuzuia upigaji simu"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Je, ungependa kuzima mipangilio yote ya kuzuia upigaji simu?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Mtandao unatumika. Tafadhali jaribu kupiga simu yako tena baadaye."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Kuna msongamano kwenye mtandao. Wasiliana na mtoa huduma wako wa simu kwa usaidizi."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Simu unayopiga imeelekezwa kwingine."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Ili uweze kutumia huduma ya <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, hakikisha data ya mtandao wa simu imewashwa katika SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Unaweza kubadilisha hali hii katika mipangilio ya data ya mtandao wa simu."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Ili uweze kutumia huduma ya <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, hakikisha vipengele vya data ya mtandao wa simu na matumizi ya mitandao ya ng\'ambo vimewashwa katika SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Unaweza kubadilisha hali hizi katika mipangilio ya mtandao wa simu."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ondoa"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Washa Muunganisho wa Data"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Zima Muunganisho wa Data"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE Imetayarishwa"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Inaruhusu Upigaji Simu ya Video"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Imetayarishwa kwa Upigaji Simu kupitia Wi-Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB Imetayarishwa"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Data ya Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Washa DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Ungependa Kuzima Kifaa Kisha Ukiwashe?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Unahitaji kuzima kifaa chako na ukiwashe tena ili ubadilishe mipangilio hii."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Zima kisha uwashe"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Ghairi"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Nishati ya Redio ya Vifaa vya Mkononi"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Angalia Kitabu cha Anwani katika SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ona Nambari za Simu Zilizobainishwa"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Angalia Nambari Zilizowekwa na Mtoa Huduma"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Hali ya Huduma ya IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Hali ya IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Imesajiliwa"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Haijasajiliwa"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Inapatikana"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Haipatikani"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Usajili wa IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nHuduma ya kupiga simu kupitia LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nHuduma ya kupiga simu kupitia WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nKupiga simu ya video: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nKiolesura cha UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Inatumika"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Haitumiki"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Simu za Dharura Pekee"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Redio Imezimwa"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Kutimia mitandao ya ng\'ambo"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Hutumii mitandao ya ng\'ambo"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Haifanyi kitu"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Inalia"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Simu Inaendelea"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Haijaunganishwa"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Inaunganisha"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Imeunganishwa"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Imesimamishwa"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Haijulikani"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"baiti"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"SubId ya sasa:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId ya SIM chaguomsingi ya data:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Kipimo Data cha DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Kipimo Data cha UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Maelezo ya Mahali Simu ya Mkononi Ilipo (huduma haipo tena):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Mipangilio ya Kituo Halisi cha LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Kasi ya Kuonyesha Upya Maelezo ya Simu:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Maelezo Yote ya Vipimo vya Simu:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Huduma ya Data:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Unatumia mitandao ya ng\'ambo:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Kuelekeza Simu Kwingine:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Idadi ya PPP Zilizowekwa Upya Tangu Iwashwe:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Mtandao wa Sasa:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data Imepokelewa:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Huduma ya Sauti:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Uthabiti wa Mawimbi:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Hali ya Kupiga Simu ya Sauti:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data Imetumwa:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Ujumbe Unasubiri Kutumwa:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Nambari ya Simu:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Chagua Bendi ya Redio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Aina ya Mtandao wa Sauti:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Aina ya Mtandao wa Data:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Chagua faharasa ya simu"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Weka Aina ya Mtandao Unayoiopendelea:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ita Jina la Mpangishaji(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ita Jina la mpangishaji(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Jaribio la Teja ya HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Tekeleza Jaribio la Mwito"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Sasisha"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Onyesha upya"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Geuza Ukaguzi wa DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Maelezo/Mipangilio Mahususi kwa Kampuni Inayotengeneza Vifaa (OEM)"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Weka Hali ya Bendi ya Redio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Inapakia Orodha ya Bendi…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Weka"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Haijafanikiwa"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Imefanikiwa"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Maelezo kuhusu kompyuta kibao"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Maelezo ya simu"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Maelezo ya Utaratibu wa Kutayarisha Mtandao"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Anzisha Utaratibu wa Kutayarisha Mtandao"</string>
 </resources>
diff --git a/res/values-ta/config.xml b/res/values-ta/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ta/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 67fb90f..20d2d70 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"தனிப்பட்ட எண்"</string>
     <string name="payphone" msgid="7936735771836716941">"கட்டணத் தொலைபேசி"</string>
     <string name="onHold" msgid="6132725550015899006">"காத்திருப்பில்"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> மெசேஜ்"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"மொபைல் நிறுவன மெசேஜ்"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI குறியீடு தொடங்கியது"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD குறியீடு இயங்குகிறது…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI குறியீடு ரத்தானது"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR மட்டும்"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"தேர்ந்தெடுத்த நெட்வொர்க் பயன்முறை: WCDMA பரிந்துரைக்கப்படுகிறது"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"தேர்ந்தெடுத்த நெட்வொர்க் பயன்முறை: GSM மட்டும்"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"தேர்ந்தெடுத்த நெட்வொர்க் பயன்முறை: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"தேர்ந்தெடுத்த நெட்வொர்க் பயன்முறை: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"தேர்ந்தெடுத்த நெர்வொர்க் பயன்முறை: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"விருப்பமான நெட்வொர்க் பயன்முறை: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"தேர்ந்தெடுத்த நெட்வொர்க் பயன்முறை: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"தேர்ந்தெடுத்த நெட்வொர்க் பயன்முறை: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"விருப்பமான நெட்வொர்க் முறை: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"தேர்வு செய்த நெட்வொர்க் பயன்முறை: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"தேர்வு செய்த நெட்வொர்க் பயன்முறை: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"தேர்வு செய்த நெட்வொர்க் பயன்முறை: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"விருப்பமான நெட்வொர்க் பயன்முறை: NR மட்டும்"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"விருப்பமான நெட்வொர்க் பயன்முறை: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"அழைப்பு"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"நெட்வொர்க்"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"மேம்பட்ட 4G LTE பயன்முறை"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"பல்வேறு வகை"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"பல்வேறு வகை இயக்கப்பட்டன"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"பல்வேறு வகை முடக்கப்பட்டன"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (பரிந்துரைக்கப்படுகிறது)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (பரிந்துரைக்கப்பட்டது)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (பரிந்துரைக்கப்பட்டது)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"நிலையான அழைப்பு எண்ணை நீக்குகிறது…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"நிலையான அழைப்பு எண் நீக்கப்பட்டது."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"தவறான பின்னை உள்ளிட்டுள்ளதால், FDN புதுப்பிக்கப்படவில்லை."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"உள்ளிட்ட எண் 20 இலக்கங்களுக்கும் அதிகமாக உள்ளதால் FDN புதுப்பிக்கப்படவில்லை."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"உள்ளிட்ட எண் <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> இலக்கங்களுக்கும் அதிகமாக உள்ளதால் FDN புதுப்பிக்கப்படவில்லை."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN புதுப்பிக்கப்படவில்லை. PIN2 தவறானது அல்லது மொபைல் எண் நிராகரிக்கப்பட்டது."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN செயல்பாடு தோல்வி."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"சிம் கார்டில் இருப்பதைப் படிக்கிறது…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> அவசர அழைப்பு எண் இல்லை என்பதால் அழைக்க முடியாது."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"அழைக்க முடியாது. அவசர அழைப்பு எண்ணை அழைக்கவும்."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"அவசர அழைப்பு வசதி இல்லை"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"PIN/PUK குறியீடுகளை சாதனத்தின் உரிமையாளர் மட்டுமே உள்ளிட முடியும்."</string>
     <string name="police_type_description" msgid="2819533883972081757">"காவல்"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ஆம்புலன்ஸ்"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"தீயணைப்பு"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"நிகழ்நேர உரை (RTT) அழைப்பு"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"குரல் அழைப்பிலேயே செய்தியிடலை அனுமதிக்கும்"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"காது கேளாதோர், கேட்பதற்குச் சிரமப்படுவோர், பேச இயலாதோர் அல்லது குரலைத் தாண்டி மற்ற வழிகளில் தகவல் தேவைப்படுவோருக்கு RTT பயன்முறை உதவுகிறது.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;மேலும் அறிக&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - டிரான்ஸ்கிரிப்ட் செய்யப்பட்ட செய்தியாக RTT அழைப்புகள் சேமிக்கப்படும்\n       &lt;br&gt; - வீடியோ அழைப்புகளுக்கு RTT பயன்முறை இல்லை"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"கவனத்தில் கொள்ளவும்: ரோமிங்கில் உள்ள போது RTT கிடையாது"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY முடக்கத்தில்"</item>
     <item msgid="1449091874731375214">"TTY ஐ இயக்கு"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ஆம்"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"இல்லை"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"விலக்கு"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"மொபைல் இப்போது அவசரகால திரும்ப அழைக்கும் பயன்முறையில் உள்ளது"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> வரை"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">மொபைல் இன்னும் <xliff:g id="COUNT_1">%s</xliff:g> நிமிடங்களுக்கு அவசரகால திரும்ப அழைக்கும் பயன்முறையில் இருக்கும்.\nஇப்போதே அதை விட்டு வெளியேறவா?</item>
+      <item quantity="one">மொபைல் இன்னும் <xliff:g id="COUNT_0">%s</xliff:g> நிமிடத்திற்கு அவசரகால திரும்ப அழைக்கும் பயன்முறையில் இருக்கும்.\nஇப்போதே அதை விட்டு வெளியேறவா?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"சேவை"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"அமைவு"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;அமைக்கப்படவில்லை&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"அழைப்புத் தடுப்பு முடக்கப்பட்டது"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"கடவுச்சொல்லை மாற்றவும்"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"அழைப்புத் தடுப்புக்கான கடவுச்சொல்லை மாற்றவும்"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"அழைப்புத் தடுப்புக்கான கடவுச்சொல்லை மாற்ற முடியாது."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"அழைப்புத் தடுப்புக்கான கடவுச்சொல்லை மாற்ற முடியாது"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"கடவுச்சொற்கள் பொருந்தவில்லை"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 எண்களுடன் கூடிய கடவுச்சொல்லை உள்ளிடவும்"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"கடவுச்சொல் மாற்றப்பட்டது"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"கடவுச்சொல்லை உறுதிப்படுத்தவும்"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"கடவுச்சொல்லை உள்ளிடவும்"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"அழைப்புத் தடுப்பு அமைப்புகள்"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"எல்லா அழைப்புத் தடுப்பு அமைப்புகளையும் முடக்கவா?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"நெட்வொர்க் பிஸியாக உள்ளது. பிறகு அழைக்கவும்."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"நெட்வொர்க் பிஸியாக உள்ளது. உதவிக்கு உங்கள் மொபைல் ஆபரேட்டரைத் தொடர்பு கொள்ளவும்."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"அழைப்புத் திருப்பிவிடப்பட்டது."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ஐப் பயன்படுத்த, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> சிம்மிற்கான மொபைல் டேட்டா இயக்கத்தில் இருப்பதை உறுதிப்படுத்திக் கொள்ளவும். இதை மொபைல் நெட்வொர்க் அமைப்புகளில் மாற்றலாம்."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ஐப் பயன்படுத்த, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> சிம்மிற்கான மொபைல் டேட்டாவும் டேட்டா ரோமிங்கும் இயக்கத்தில் இருப்பதை உறுதிப்படுத்திக் கொள்ளவும். இவற்றை மொபைல் நெட்வொர்க் அமைப்புகளில் மாற்றலாம்."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"நிராகரி"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"டேட்டா இணைப்பை இயக்கு"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"டேட்டா இணைப்பை முடக்கு"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE அமைக்கப்பட்டது"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"வீடியோ அழைப்பு அமைக்கப்பட்டது"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"வைஃபை அழைப்பு அமைக்கப்பட்டது"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/பிரசென்ஸ் அமைக்கப்பட்டது"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs டேட்டா"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDSஸை இயக்கு"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"மீண்டும் தொடங்கவா?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"இந்த அமைப்பை மாற்ற சாதனத்தை மீண்டும் தொடங்க வேண்டும்."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"மீண்டும் தொடங்கு"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ரத்துசெய்"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"மொபைல் ரேடியோ பவர்"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"சிம் முகவரிப் புத்தகத்தைக் காட்டு"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"நிலையான அழைப்பு எண்களைக் காட்டு"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"சேவை அழைப்பு எண்களைக் காட்டு"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS சேவை நிலை"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS நிலை"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"பதிவு செய்யப்பட்டது"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"பதிவுசெய்யப்படவில்லை"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"இருக்கிறது"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"கிடைக்கவில்லை"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS பதிவு: <xliff:g id="STATUS">%1$s</xliff:g>\nவாய்ஸ் ஓவர் LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nவாய்ஸ் ஓவர் WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nவீடியோ அழைப்பு: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT இடைமுகம்: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"சேவையில் உள்ளது"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"சேவையில் இல்லை"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"அவசர அழைப்புகள் மட்டும்"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ரேடியோ ஆஃப் செய்யப்பட்டுள்ளது"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ரோமிங்"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ரோமிங்கில் இல்லை"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"செயல்படவில்லை"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"ரிங் ஆகிறது"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"அழைப்பில் உள்ளது"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"இணைப்பில் இல்லை"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"இணைக்கிறது"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"இணைக்கப்பட்டுள்ளது"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"இடைநீக்கப்பட்டது"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"தெரியாதது"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"பைட்டுகள்"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"தற்போதைய துணை ஐடி:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"இயல்பான டேட்டா சிம்மின் துணை ஐடி:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL இணைய வேகம் (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL இணைய வேகம் (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"மொபைலின் இருப்பிடத் தகவல் (நிறுத்தப்பட்டது):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ஃபிசிக்கல் சேனல் உள்ளமைவு:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"மொபைல் தகவலின் புதுப்பிப்பு விகிதம்:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"அனைத்து மொபைல் அளவீட்டுத் தகவல்:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"டேட்டா சேவை:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ரோமிங்:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"அழைப்பைத் திசைதிருப்பு:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"தொடக்கம் முதல் PPP மீட்டமைவின் எண்ணிக்கை:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"தற்போதைய நெட்வொர்க்:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"பெறப்பட்ட டேட்டா:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"குரல் சேவை:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"சிக்னலின் வலிமை:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"குரல் அழைப்பின் நிலை:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"அனுப்பிய தரவு:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"காத்திருப்பில் உள்ள செய்தி:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ஃபோன் எண்:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ரேடியோ பேண்டைத் தேர்ந்தெடுக்கவும்"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"குரல் நெட்வொர்க் வகை:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"டேட்டா நெட்வொர்க்கின் வகை:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ஃபோன் அட்டவணையைத் தேர்ந்தெடுக்கவும்"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"விரும்பப்படும் நெட்வொர்க் வகையை அமைக்கவும்:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ஹோஸ்ட்பெயர்(www.google.com) IPv4ஐப் பிங் செய்:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ஹோஸ்ட்பெயர்(www.google.com) IPv6ஐப் பிங் செய்:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP கிளையண்ட் சோதனை:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"பிங் சோதனையை இயக்கு"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"புதுப்பி"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"புதுப்பி"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS சரிபார்ப்பை நிலைமாற்று"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM சார்ந்த தகவல்/அமைப்புகள்"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ரேடியோ பேண்டு பயன்முறையை அமை"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"பேண்டு பட்டியலை ஏற்றுகிறது…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"அமை"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"தோல்வி"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"வெற்றி"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"டேப்லெட்டின் தகவல்"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"மொபைலின் தகவல்"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Carrier Provisioning Info"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger Carrier Provisioning"</string>
 </resources>
diff --git a/res/values-te/config.xml b/res/values-te/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-te/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 1f31e8e..5e4ce1c 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ప్రైవేట్ నంబర్"</string>
     <string name="payphone" msgid="7936735771836716941">"పే ఫోన్"</string>
     <string name="onHold" msgid="6132725550015899006">"హోల్డ్‌లో ఉంది"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>సందేశం"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"క్యారియర్ సందేశం"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI కోడ్ ప్రారంభించబడింది"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD కోడ్ అమలు చేయబడుతోంది…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI కోడ్ రద్దు చేయబడింది"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR మాత్రమే"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: WCDMAకు ప్రాధాన్యత"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: GSM మాత్రమే"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: గ్లోబల్"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR మాత్రమే"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"కాలింగ్"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"నెట్‌వర్క్"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"మెరుగుపరిచిన 4G LTE మోడ్"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"బహుళ-వర్గాలు"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"బహుళ-వర్గాలు ప్రారంభించబడ్డాయి"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"బహుళ-వర్గాలు నిలిపివేయబడ్డాయి"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (సిఫార్సు చేయడమైనది)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (సిఫార్సు చేయబడింది)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (సిఫార్సు చేయబడింది)"</string>
     <string name="network_global" msgid="3289646154407617631">"గ్లోబల్"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ఫిక్స్‌డ్ డయలింగ్ నంబర్‌ను తొలగిస్తోంది..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ఫిక్స్‌డ్ డయలింగ్ నంబర్ తొలగించబడింది."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"మీరు చెల్లని PINను టైప్ చేసినందున FDN నవీకరించబడలేదు."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"నంబర్ 20 అంకెలను మించినందున FDN అప్‌డేట్ చేయబడలేదు."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"నంబర్ <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> అంకెలను మించినందున FDN అప్‌డేట్ చేయబడలేదు."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN నవీకరించబడలేదు. PIN2 చెల్లదు లేదా ఫోన్ నంబర్ తిరస్కరించబడింది."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN చర్య విఫలమైంది."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM కార్డు నుండి చదువుతోంది…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"కాల్ చేయలేరు. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> అత్యవసర నంబర్ కాదు."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"కాల్ చేయలేరు. అత్యవసర నంబర్‌ను డయల్ చేయండి."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"అత్యవసర కాలింగ్ అందుబాటులో లేదు"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"పరికరం యజమాని మాత్రమే PIN/PUK కోడ్‌లను నమోదు చేయగలరు."</string>
     <string name="police_type_description" msgid="2819533883972081757">"పోలీస్"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"అంబులెన్స్‌"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"అగ్నిమాపక శాఖ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"నిజ సమయ వచనం (RTT) కాల్"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"వాయిస్ కాల్‌లో సందేశాలు పంపడానికి అనుమతించండి"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"బధిరులు, వినికిడి సమస్యలు ఉన్న వారు, మాట్లాడటంలో సమస్యలు ఉన్న వారు లేదా కేవలం వాయిస్‌తో అర్థం చేసుకోలేని కాలర్‌లకు RTT సహాయపడుతుంది.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;మరింత తెలుసుకోండి&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT కాల్‌లు సందేశ లిపి మార్పు వలె సేవ్ చేయబడతాయి\n       &lt;br&gt; - వీడియో కాల్‌ల కోసం RTT అందుబాటులో లేదు"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"గమనిక: రోమింగ్‌లో ఉండగా RTTఅందుబాటులో ఉండదు"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ఆఫ్‌లో ఉంది"</item>
     <item msgid="1449091874731375214">"TTY సంపూర్ణంగా ఉన్నవి"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"అవును"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"కాదు"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"తీసివేయి"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ఫోన్ అత్యవసర కాల్‌బ్యాక్ మోడ్‌లో ఉంది"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> వరకు"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">ఫోన్ అత్యవసర కాల్‌బ్యాక్ మోడ్‌లో <xliff:g id="COUNT_1">%s</xliff:g> నిమిషాల పాటు ఉంటుంది.\n మీరు ఇప్పుడే నిష్క్రమించాలనుకుంటున్నారా?</item>
+      <item quantity="one">ఫోన్ అత్యవసర కాల్‌బ్యాక్ మోడ్‌లో <xliff:g id="COUNT_0">%s</xliff:g> నిమిషం పాటు ఉంటుంది. \n మీరు ఇప్పుడే నిష్క్రమించాలనుకుంటున్నారా?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"సేవ"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"సెటప్"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;సెట్ చేయలేదు&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"కాల్ బేరింగ్ నిష్క్రియం చేయబడింది"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"పాస్‌వర్డ్‌ను మార్చండి"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"కాల్ బేరింగ్ పాస్‌వర్డ్‌ని మార్చండి"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"కాల్ బేరింగ్ పాస్‌వర్డ్‌ని మార్చడం సాధ్యం కాదు."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"కాల్ బేరింగ్ పాస్‌వర్డ్‌ని మార్చడం సాధ్యం కాదు"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"పాస్‌‌వర్డ్‌లు సరిపోలడం లేదు"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 సంఖ్యలతో పాస్‌వర్డ్‌ని నమోదు చేయండి"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"పాస్‌వర్డ్ మార్చబడింది"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"పాస్‌వర్డ్‌ని నిర్ధారించండి"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"పాస్‌వర్డ్‌ని నమోదు చేయండి"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"కాల్ బేరింగ్ సెట్టింగ్‌లు"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"అన్ని కాల్ బేరింగ్ సెట్టింగ్‌లను నిష్క్రియం చేయాలా?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"నెట్‌వర్క్ బిజీగా ఉంది. దయచేసి తిరిగి తర్వాత కాల్ చేయండి."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"నెట్‌వర్క్‌లో అంతరాయం ఏర్పడింది. సహాయం కోసం మీ మొబైల్ ఆపరేటర్‌ను సంప్రదించండి."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"కాల్ మళ్లించబడింది."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ని ఉపయోగించడానికి, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> కోసం మొబైల్ డేటాను తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు దీనిని మొబైల్ నెట్‌వర్క్ సెట్టింగ్‌లలో మార్చవచ్చు."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ని ఉపయోగించడానికి, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> కోసం మొబైల్ డేటా మరియు డేటా రోమింగ్‌ని తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు వీటిని మొబైల్ నెట్‌వర్క్ సెట్టింగ్‌లలో మార్చవచ్చు."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"తీసివేయి"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"డేటా కనెక్షన్‌ను ప్రారంభించండి"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"డేటా కనెక్షన్‌ను నిలిపివేయండి"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE సదుపాయం ఉంది"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"వీడియో కాలింగ్ సదుపాయం ఉంది"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi కాలింగ్ సదుపాయం ఉంది"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/ఉనికి సక్రియం చేయబడింది"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs డేటా"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDSను ప్రారంభించండి"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"పరికరాన్ని మళ్లీ ప్రారంభించాలా?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"మీరు ఈ సెట్టింగ్‌ను మార్చడానికి మీ పరికరాన్ని మళ్లీ ప్రారంభించాలి."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"పునఃప్రారంభించు"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"రద్దు చేయండి"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"మొబైల్ రేడియో పవర్"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM చిరునామా పుస్తకాన్ని చూడండి"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ఫిక్స్‌డ్ డయలింగ్ నంబర్‌లను చూడండి"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"సర్వీస్ డయలింగ్ నంబర్‌లను వీక్షించండి"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS సేవ స్థితి"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS స్థితి"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"నమోదు చేయబడింది"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"నమోదు కాలేదు"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"అందుబాటులో ఉన్నారు"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"అందుబాటులో లేదు"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS నమోదు: <xliff:g id="STATUS">%1$s</xliff:g>\nవాయిస్ ఓవర్ LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nవాయిస్ ఓవర్ WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nవీడియో కాలింగ్: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ఇంటర్‌ఫేస్: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"సేవ అందుబాటులో ఉంది"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"సేవ అందుబాటులో లేదు"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"అత్యవసర కాల్‌లు మాత్రమే"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"రేడియో ఆఫ్‌లో ఉంది"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"రోమింగ్"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"రోమింగ్‌లో లేదు"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"నిష్క్రియంగా ఉంది"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"రింగ్ వస్తోంది"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"కాల్ ప్రోగ్రెస్‌లో ఉంది"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"డిస్‌కనెక్ట్ అయింది"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"కనెక్ట్ చేయబడుతోంది"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"కనెక్ట్ చేయబడింది"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"తాత్కాలికంగా నిలిపివేయబడింది"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"తెలియదు"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"బైట్‌లు"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ప్రస్తుత subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"డిఫాల్ట్ డేటా SIM యొక్క SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL బ్యాండ్‌విడ్త్ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL బ్యాండ్‌విడ్త్ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"సెల్ స్థాన సమాచారం (నిలిపివేయబడింది):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE భౌతిక ఛానెల్ కాన్ఫిగరేషన్:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"సెల్ సమాచార రిఫ్రెష్ సగటు:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"మొత్తం సెల్ పరిమాణ సమాచారం:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"డేటా సేవ:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"రోమింగ్:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"కాల్ దారి మళ్లింపు:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"బూట్ చేసినప్పటి నుండి PPP రీసెట్ సంఖ్య:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"ప్రస్తుత నెట్‌వర్క్:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"స్వీకరించిన డేటా:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"వాయిస్ సేవ:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"సిగ్నల్ సామర్థ్యం:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"వాయిస్ కాల్ స్థితి:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"పంపిన డేటా:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"సందేశ నిరీక్షణ:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ఫోన్ నంబర్:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"రేడియో బ్యాండ్‌ను ఎంచుకోండి"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"వాయిస్ నెట్‌వర్క్ రకం:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"డేటా నెట్‌వర్క్ రకం:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ఫోన్ సూచికను ఎంచుకోండి"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"సెట్ చేసిన ప్రాధాన్య నెట్‌వర్క్ రకం:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"పింగ్ హోస్ట్ పేరు(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"పింగ్ హోస్ట్ పేరు(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP క్లయింట్ పరీక్ష:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"పింగ్ పరీక్షను అమలు చేయండి"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"అప్‌డేట్ చేయండి"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"రిఫ్రెష్ చేయి"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS తనిఖీని టోగుల్ చేయండి"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-నిర్దిష్ట సమాచారం/సెట్టింగ్‌లు"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"రేడియో బ్యాండ్ మోడ్‌ను సెట్ చేయండి"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"బ్యాండ్ జాబితాను లోడ్ చేస్తోంది…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"సెట్ చేయి"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"విఫలమైంది"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"విజయవంతమైంది"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"టాబ్లెట్ సమాచారం"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ఫోన్ సమాచారం"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"క్యారియర్ కేటాయింపు సమాచారం"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"క్యారియర్ కేటాయింపు సక్రియం చేయండి"</string>
 </resources>
diff --git a/res/values-th/config.xml b/res/values-th/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-th/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index dcd797e..b1b544b 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"หมายเลขส่วนตัว"</string>
     <string name="payphone" msgid="7936735771836716941">"โทรศัพท์สาธารณะ"</string>
     <string name="onHold" msgid="6132725550015899006">"พักสาย"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"ข้อความ <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"ข้อความของผู้ให้บริการ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"เริ่มรหัส MMI แล้ว"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"กำลังรันรหัส USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"ยกเลิกรหัส MMI แล้ว"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR เท่านั้น"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"โหมดเครือข่ายที่ต้องการ: ต้องการ WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"โหมดเครือข่ายที่ต้องการ: GSM เท่านั้น"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"โหมดเครือข่ายที่ต้องการ: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"โหมดเครือข่ายที่ต้องการ: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"โหมดเครือข่ายที่ต้องการ: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"โหมดเครือข่ายที่ต้องการ: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"โหมดเครือข่ายที่ต้องการ: ทั่วโลก"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"โหมดเครือข่ายที่ต้องการ: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"โหมดเครือข่ายที่ต้องการ: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"โหมดเครือข่ายที่ต้องการ: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"โหมดเครือข่ายที่ต้องการ: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"โหมดเครือข่ายที่ต้องการ: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"โหมดเครือข่ายที่ต้องการ: NR เท่านั้น"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"โหมดเครือข่ายที่ต้องการ: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"โหมดเครือข่ายที่ต้องการ: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"โหมดเครือข่ายที่ต้องการ: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"โหมดเครือข่ายที่ต้องการ: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"โหมดเครือข่ายที่ต้องการ: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"โหมดเครือข่ายที่ต้องการ: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"โหมดเครือข่ายที่ต้องการ: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"โหมดเครือข่ายที่ต้องการ: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"โหมดเครือข่ายที่ต้องการ: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"โหมดเครือข่ายที่ต้องการ: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"กำลังโทร"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"เครือข่าย"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"โหมด 4G LTE ที่ปรับปรุงแล้ว"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"หลายหมวดหมู่"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"เปิดใช้งานหลายหมวดหมู่แล้ว"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ปิดใช้งานหลายหมวดหมู่"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (แนะนำ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (แนะนำ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (แนะนำ)"</string>
     <string name="network_global" msgid="3289646154407617631">"ทั่วโลก"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"กำลังลบการจำกัดหมายเลขโทรออก…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ลบการจำกัดหมายเลขโทรออกแล้ว"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN ไม่อัปเดตเพราะคุณป้อน PIN ไม่ถูกต้อง"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"ระบบไม่ได้อัปเดต FDN เนื่องจากหมายเลขมีจำนวนเกิน 20 หลัก"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"ระบบไม่ได้อัปเดต FDN เนื่องจากหมายเลขมีจำนวนเกิน <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> หลัก"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"ไม่ได้อัปเดต FDN เพราะ PIN2 ไม่ถูกต้องหรือหมายเลขโทรศัพท์ถูกปฏิเสธ"</string>
     <string name="fdn_failed" msgid="216592346853420250">"การปลดล็อกด้วย FDN ล้มเหลว"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"กำลังอ่านจากซิมการ์ด…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"ไม่สามารถโทรได้ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ไม่ใช่หมายเลขฉุกเฉิน"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"ไม่สามารถโทรออก โทรหมายเลขฉุกเฉิน"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"หมายเลขฉุกเฉินไม่พร้อมใช้งาน"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"มีเพียงเจ้าของอุปกรณ์เท่านั้นที่ทำการป้อนโค้ด PIN/PUK ได้"</string>
     <string name="police_type_description" msgid="2819533883972081757">"ตำรวจ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"รถพยาบาล"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"อัคคีภัย"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"การโทรระบบข้อความแบบเรียลไทม์ (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"อนุญาตให้รับส่งข้อความระหว่างการโทรด้วยเสียง"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT ช่วยเหลือผู้โทรที่หูหนวก ได้ยินไม่ชัด มีความบกพร่องในการพูด หรือต้องการการสื่อสารที่นอกเหนือจากเสียงพูด&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ดูข้อมูลเพิ่มเติม&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - สาย RTT จะบันทึกในรูปแบบการถอดเสียงเป็นข้อความ\n       &lt;br&gt; - RTT ใช้ไม่ได้สำหรับวิดีโอคอล"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"หมายเหตุ: RTT ไม่พร้อมใช้งานขณะโรมมิ่ง"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"ปิด TTY"</item>
     <item msgid="1449091874731375214">"TTY เต็ม"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ใช่"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"ไม่"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"เลิกแสดง"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"โทรศัพท์อยู่ในโหมดติดต่อกลับฉุกเฉิน"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"จนถึง <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">โทรศัพท์จะอยู่ในโหมดติดต่อกลับฉุกเฉินเป็นเวลา <xliff:g id="COUNT_1">%s</xliff:g> นาที\nคุณต้องการออกเลยไหม</item>
+      <item quantity="one">โทรศัพท์จะอยู่ในโหมดติดต่อกลับฉุกเฉินเป็นเวลา <xliff:g id="COUNT_0">%s</xliff:g> นาที\nคุณต้องการออกเลยไหม</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"บริการ"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"การตั้งค่า"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;ไม่ได้ตั้งค่า&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ปิดใช้งานการระงับการโทรแล้ว"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"เปลี่ยนรหัสผ่าน"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"เปลี่ยนรหัสผ่านระงับการโทร"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"เปลี่ยนรหัสผ่านระงับการโทรไม่ได้"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"เปลี่ยนรหัสผ่านเพื่อระงับการโทรไม่ได้"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"รหัสผ่านไม่ตรงกัน"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"ป้อนรหัสผ่านเป็นตัวเลข 4 ตัว"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"เปลี่ยนรหัสผ่านแล้ว"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"ยืนยันรหัสผ่าน"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"ป้อนรหัสผ่าน"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"การตั้งค่าระงับการโทร"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"ปิดใช้งานการตั้งค่าระงับการโทรทั้งหมดไหม"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"เครือข่ายไม่ว่าง โปรดลองโทรอีกครั้ง"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"เครือข่ายแออัด ติดต่อโอเปอเรเตอร์อุปกรณ์เคลื่อนที่เพื่อขอความช่วยเหลือ"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"มีการส่งต่อสาย"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"หากต้องการใช้ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> โปรดเปิดเน็ตมือถือสำหรับ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> คุณเปลี่ยนตัวเลือกนี้ได้ในการตั้งค่าเครือข่ายมือถือ"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"หากต้องการใช้ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> โปรดเปิดเน็ตมือถือและการโรมมิ่งข้อมูลสำหรับ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> คุณเปลี่ยนตัวเลือกเหล่านี้ได้ในการตั้งค่าเครือข่ายมือถือ"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"ปิด"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"เปิดใช้การเชื่อมต่ออินเทอร์เน็ต"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ปิดใช้การเชื่อมต่ออินเทอร์เน็ต"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ที่จัดสรรแล้ว"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"จัดสรรการโทรแบบวิดีโอคอลแล้ว"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"จัดสรรการโทรผ่าน Wi-Fi แล้ว"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"จัดสรร EAB/Presence แล้ว"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"ข้อมูล CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"เปิดใช้ DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"รีสตาร์ทอุปกรณ์ใช่ไหม"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"คุณต้องรีสตาร์ทอุปกรณ์เพื่อเปลี่ยนการตั้งค่านี้"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"รีสตาร์ท"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ยกเลิก"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"กำลังส่งของวิทยุเครือข่ายมือถือ"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ดูสมุดที่อยู่ของซิม"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ดูการจำกัดหมายเลขโทรออก"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ดูหมายเลขรับบริการโทรออก"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"สถานะบริการ IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"สถานะ IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ลงทะเบียนแล้ว"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"ไม่ได้ลงทะเบียน"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ใช้งานได้"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ไม่พร้อมใช้งาน"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"การลงทะเบียน IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nการสื่อสารทางเสียงผ่าน LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nการสื่อสารทางเสียงผ่าน Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nการโทรแบบวิดีโอคอล: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nอินเทอร์เฟซ UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"กำลังให้บริการ"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"ไม่พร้อมให้บริการ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"โทรฉุกเฉินเท่านั้น"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"วิทยุปิดอยู่"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"โรมมิ่ง"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ไม่ได้โรมมิ่ง"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"ไม่ได้ใช้งาน"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"เสียงกริ่ง"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"กำลังใช้สาย"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"เลิกเชื่อมต่อแล้ว"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"กำลังเชื่อมต่อ"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"เชื่อมต่อแล้ว"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"ถูกระงับ"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"ไม่รู้จัก"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ไบต์"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"SubId ปัจจุบัน:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId ของซิมอินเทอร์เน็ตเริ่มต้น:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"แบนด์วิดท์ดาวน์โหลด (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"แบนด์วิดท์อัปโหลด (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ข้อมูลตำแหน่งของเครือข่ายมือถือ (เลิกใช้งานแล้ว):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"การกำหนดค่าแชเนลทางกายภาพของ LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"อัตราการรีเฟรชข้อมูลมือถือ:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ข้อมูลการวัดเครือข่ายมือถือทั้งหมด:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"บริการข้อมูล:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"โรมมิ่ง:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"การเปลี่ยนเส้นทางการโทร:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"จำนวนการรีเซ็ต PPP ตั้งแต่เปิดเครื่อง:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"เครือข่ายปัจจุบัน:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ข้อมูลที่ได้รับ:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"บริการเสียง:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"ความแรงสัญญาณ:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"สถานะการโทรด้วยเสียง:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ส่งข้อมูลแล้ว:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"ข้อความที่รออยู่:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"หมายเลขโทรศัพท์:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"เลือกย่านความถี่วิทยุ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ประเภทของเครือข่ายเสียง:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ประเภทเครือข่ายข้อมูล:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"เลือกดัชนีโทรศัพท์"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ตั้งค่าประเภทเครือข่ายที่ต้องการ:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ใช้คำสั่ง ping ชื่อโฮสต์ (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ใช้คำสั่ง ping ชื่อโฮสต์ (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"การทดสอบไคลเอ็นต์ HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ใช้การทดสอบคำสั่ง ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"อัปเดต"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"รีเฟรช"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"สลับการตรวจสอบ DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"ข้อมูล/การตั้งค่าเฉพาะตาม OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ตั้งค่าโหมดย่านความถี่วิทยุ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"กำลังโหลดรายการย่านความถี่…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"ตั้งค่า"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ไม่สำเร็จ"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"สำเร็จแล้ว"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ข้อมูลแท็บเล็ต"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ข้อมูลโทรศัพท์"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ข้อมูลการจัดสรรผู้ให้บริการ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ทริกเกอร์การจัดสรรผู้ให้บริการ"</string>
 </resources>
diff --git a/res/values-tl/config.xml b/res/values-tl/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-tl/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 93c45d8..a7eaafd 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Pribadong numero"</string>
     <string name="payphone" msgid="7936735771836716941">"Payphone"</string>
     <string name="onHold" msgid="6132725550015899006">"Naka-hold"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mensahe ng <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mensahe ng Carrier"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Sinimulan ang MMI code"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Tumatakbo ang USSD code…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Kinansela ang MMI code"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR lang"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Mas gustong mode ng network: WCDMA ang mas gusto"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Mas gustong mode ng network: GSM lamang"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Gustong mode ng network: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Gustong mode ng network: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Gustong mode ng network: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Mas gustong network mode: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Gustong mode ng network: Pangkalahatan"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Gustong mode ng network: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Mas gustong network mode: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Mas gustong network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Mas gustong network mode: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Mas gustong network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Mas gustong network mode: NR lang"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Mas gustong network mode: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Mas gustong network mode: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Mas gustong network mode: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Mas gustong network mode: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Mas gustong network mode: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Mas gustong network mode: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Mas gustong network mode: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Mas gustong network mode: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Mas gustong network mode: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Mas gustong network mode: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Tumatawag"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Network"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Enhanced 4G LTE Mode"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-category"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Pinagana ang multi-category"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Hindi pinagana ang multi-category"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (inirerekomenda)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (inirerekomenda)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (inirerekomenda)"</string>
     <string name="network_global" msgid="3289646154407617631">"Pandaigdigan"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Tinatanggal ang fixed dialing number…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Tinanggal ang fixed dialing number."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Hindi na-update ang FDN dahil maling PIN ang iyong na-type."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Hindi na-update ang FDN dahil ang bilang ay lampas sa 20 digit."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Hindi na-update ang FDN dahil ang bilang ay lampas sa <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> (na) digit."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Hindi na-update ang FDN. Hindi wasto ang PIN2, o tinanggihan ang numero ng telepono."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Nagbigo ang operasyon ng FDN."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Nagbabasa mula sa SIM card…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Hindi makatawag. Ang <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ay hindi isang emergency na numero."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Hindi makatawag. Mag-dial ng emergency na numero."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Hindi available ang emergency na pagtawag"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Ang may-ari lang ng device ang puwedeng maglagay ng mga PIN/PUK code."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Pulis"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulansya"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Sunog"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Real-time na text (RTT) na tawag"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Payagan ang pagmemensahe sa isang voice call"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Tinutulungan ng RTT ang mga tumatawag na bingi, mahina ang pandinig, may kapansanan sa pagsasalita, o kailangan ng higit pa sa boses lang.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Matuto pa&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Sine-save ang mga RTT na tawag bilang transcript ng mensahe\n       &lt;br&gt; - Hindi available ang RTT para sa mga video call"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Tandaan: Hindi available ang RTT habang naka-roam"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"I-off ang TTY"</item>
     <item msgid="1449091874731375214">"Puno ang TTY"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Oo"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Hindi"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Balewalain"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Nasa emergency callback mode ang telepono"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Hanggang <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Nasa emergency callback mode ang telepono nang <xliff:g id="COUNT_1">%s</xliff:g> minuto.\nGusto mo bang lumabas ngayon?</item>
+      <item quantity="other">Nasa emergency callback mode ang telepono nang <xliff:g id="COUNT_1">%s</xliff:g> na minuto.\nGusto mo bang lumabas ngayon?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Serbisyo"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Setup"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Hindi nakatakda&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Na-deactivate ang pag-bar ng tawag"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Baguhin ang password"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Baguin ang password ng pag-bar ng tawag"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Hindi mababago ang password ng pag-bar ng tawag."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Hindi mababago ang password ng pag-bar ng tawag"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Ang iyong mga password ay hindi magkatugma"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Maglagay ng password na may 4 na numero"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Binago ang password."</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Kumpirmahin ang password"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Ilagay ang password"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Mga setting ng pag-bar ng tawag"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"I-deactivate ang lahat ng setting ng pag-bar ng tawag?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Busy ang network. Pakisubukan muling tumawag sa ibang pagkakataon."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Mabagal ang network. Makipag-ugnayan sa iyong mobile operator para sa tulong."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Na-deflect ang tawag."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Para gamitin ang <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, tiyaking naka-on ang mobile data para sa SIM na <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Maaari mo itong baguhin sa mga setting ng mobile network."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Para gamitin ang <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, tiyaking naka-on ang mobile data at data roaming para sa SIM na <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Maaari mong baguhin ang mga ito sa mga setting ng mobile network."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"I-dismiss"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"I-enable ang Koneksyon sa Data"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"I-disable ang Koneksyon sa Data"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE Provisioned"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Naka-provision ang Pag-video Call"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Naka-provision ang Pagtawag gamit ang Wifi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Naka-provision ang EAB/Presence"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs Data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"I-enable ang DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"I-restart ang Device?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Kailangan mong i-restart ang device para mabago ang setting."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"I-restart"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Kanselahin"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile Radio Power"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Tingnan ang Address Book ng SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Tingnan ang Mga Fixed Dialing Number"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Tingnan ang Mga Service Dialing Number"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status ng Serbisyo ng IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Status ng IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Nakarehistro"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Hindi Nakarehistro"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Available"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Hindi available"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Pagpaparehistro ng IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice sa pamamagitan ng LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice sa pamamagitan ng WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo Calling: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT Interface: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Gumagana"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Hindi Gumagana"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Mga Emergency na Tawag Lang"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Naka-off ang Radyo"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Hindi Roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Idle"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Nagri-ring"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"May Kausap sa Telepono"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Nakadiskonekta"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Kumokonekta"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Konektado"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Sinuspinde"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Hindi alam"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Kasalukuyang subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId ng default na data SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL Bandwidth (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL Bandwidth (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Impormasyon ng Lokasyon ng Cell (hindi na ginagamit):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuration ng LTE Physical Channel:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Rate ng Pag-refresh ng Impormasyon ng Cell:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Impormasyon ng Pagsukat sa Lahat ng Cell:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Serbisyo ng Data:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Pag-redirect ng Tawag:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Bilang ng Pag-reset ng PPP Pagkatapos Mag-boot:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Kasalukuyang Network:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Natanggap na Data:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Serbisyo ng Voice:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Lakas ng Signal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status ng Voice Call:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Ipinadalang Data:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Naghihintay na Mensahe:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Numero ng Telepono:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Pumili ng Band ng Radyo"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Uri ng Voice Network:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Uri ng Data Network:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Pumili ng index ng telepono"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Itakda ang Uri ng Gustong Network:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"I-ping ang Hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"I-ping ang Hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test ng HTTP Client:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Patakbuhin ang Ping Test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"I-update"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"I-refresh"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"I-toggle ang DNS Check"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Impormasyon/Mga Setting na partikular sa OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Itakda ang Band Mode ng Radyo"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Nilo-load ang Listahan ng Band…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Itakda"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Hindi Matagumpay"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Matagumpay"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Impormasyon ng tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Impormasyon ng telepono"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Impormasyon sa Provisioning ng Carrier"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"I-trigger ang Provisioning ng Carrier"</string>
 </resources>
diff --git a/res/values-tr/config.xml b/res/values-tr/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-tr/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index b5cb82a..2d34fa1 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Özel numara"</string>
     <string name="payphone" msgid="7936735771836716941">"Ankesörlü telefon"</string>
     <string name="onHold" msgid="6132725550015899006">"Beklemede"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Mesajı"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operatör Mesajı"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI kodu başlatıldı"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD kodu çalışıyor…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI kodu iptal edildi"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Yalnızca NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Tercih edilen ağ modu: WCDMA tercih edilir"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Tercih edilen ağ modu: Yalnızca GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Tercih edilen ağ modu: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Tercih edilen ağ modu: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Tercih edilen ağ modu: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Tercih edilen ağ modu: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Tercih edilen ağ modu: Dünya Genelinde"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Tercih edilen ağ modu: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Tercih edilen ağ modu: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Tercih edilen ağ modu: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Tercih edilen ağ modu: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Tercih edilen ağ modu: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Tercih edilen ağ modu: Yalnızca NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Tercih edilen ağ modu: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Tercih edilen ağ modu: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Tercih edilen ağ modu: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Tercih edilen ağ modu: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Tercih edilen ağ modu: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Tercih edilen ağ modu: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Tercih edilen ağ modu: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Tercih edilen ağ modu: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Tercih edilen ağ modu: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Tercih edilen ağ modu: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Çağrı"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Ağ"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Geliştirilmiş 4G LTE Modu"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Çoklu kategori"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Çoklu kategori etkinleştirildi"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Çoklu kategori devre dışı bırakıldı"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (önerilen)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (önerilir)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (önerilir)"</string>
     <string name="network_global" msgid="3289646154407617631">"Küresel"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Sabit arama numarası siliniyor..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Sabit arama numarası silindi."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Yanlış PIN girdiğiniz için FDN güncellenmedi."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Sayı 20 basamaktan uzun olduğu için FDN güncellenemedi."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Numara <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> basamaktan uzun olduğu için SAN güncellenemedi."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN güncellenmedi. PIN2 doğru değildi veya telefon numarası reddedildi."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN işlemi başarısız oldu."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM karttan okunuyor..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Aranamıyor. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> bir acil durum numarası değil."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Aranamıyor. Bir acil durum numarasını arayın."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Acil durum çağrısı yapılamaz"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"PIN/PUK kodlarını yalnızca cihazın sahibi girebilir."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polis"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulans"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"İtfaiye"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Gerçek zamanlı mesaj (RTT) çağrısı"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Sesli aramada mesajlaşmaya izin verilir"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT; tam veya kısmi işitme engelli, konuşma engeli olan veya sesten fazlasına ihtiyaç duyan arayanlara yardımcı olur.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Daha fazla bilgi&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT çağrıları, mesaj çeviri yazısı olarak kaydedilir\n       &lt;br&gt; - RTT, görüntülü görüşmelerde kullanılamaz"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Not: Dolaşım sırasında RTT kullanılamaz"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY Kapalı"</item>
     <item msgid="1449091874731375214">"TTY Tam"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Evet"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Hayır"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Kapat"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon, acil geri arama modunda"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Şu saate kadar: <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefon <xliff:g id="COUNT_1">%s</xliff:g> dakika boyunca acil geri arama modunda olacak.\nŞimdi çıkmak istiyor musunuz?</item>
+      <item quantity="one">Telefon <xliff:g id="COUNT_0">%s</xliff:g> dakika boyunca acil geri arama modunda olacak.\nŞimdi çıkmak istiyor musunuz?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Hizmet"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Kurulum"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ayarlanmadı&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Çağrı engelleme devre dışı bırakıldı"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Şifreyi değiştir"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Çağrı engelleme şifresi değiştirilir"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Çağrı engelleme şifresi değiştirilemez."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Arama engelleme şifresi değiştirilemez"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Şifreler eşleşmiyor"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 rakamdan oluşan bir şifre girin"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Şifre değişti"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Şifreyi onayla"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Şifreyi girin"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Çağrı engelleme ayarları"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Tüm çağrı engelleme ayarları devre dışı bırakılsın mı?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Ağ meşgul. Lütfen daha sonra tekrar aramayı deneyin."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Ağ fazla dolu. Yardım almak için cep telefonu operatörünüzle iletişime geçin."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Çarının yönü değiştirildi."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> hizmetini kullanmak üzere, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> numaralı SIM için mobil verinin etkin olduğundan emin olun. Bunu mobil ağ ayarlarından değiştirebilirsiniz."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> hizmetini kullanmak üzere, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> numaralı SIM için mobil verinin ve veri dolaşımının etkin olduğundan emin olun. Bunları mobil ağ ayarlarından değiştirebilirsiniz."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Kapat"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Veri Bağlantısını Etkinleştir"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Veri Bağlantısını Devre Dışı Bırak"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE Temel Hazırlığı Yapıldı"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Görüntülü Görüşme Temel Hazırlığı Yapıldı"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Kablosuz Ağ Üzerinden Görüşme Temel Hazırlığını Yap"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Varlık Temel Hazırlığı Yapıldı"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs Verileri"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS\'yi etkinleştir"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Cihaz Yeniden Başlatılsın mı?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Bu ayarı değiştirmek için cihazınızı yeniden başlatın."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Yeniden başlat"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"İptal"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobil Radyo Gücü"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM Adres Defterini Görüntüle"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Sabit Arama Numaralarını Görüntüle"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Hizmet Arama Numaralarını Görüntüle"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS Hizmet Durumu"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS Durumu"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Kayıtlı"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Kaydettirilmedi"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Kullanılabilir"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Kullanılamıyor"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS Kaydı: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE:üzerinden ses <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWiFi üzerinden ses: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nGörüntülü Görüşme: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT Arayüzü: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Hizmette"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Hizmet Dışı"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Yalnızca Acil Durum Aramaları İçin"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radyo Kapalı"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Dolaşım"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Dolaşımda Değil"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Boşta"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Çalıyor"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Arama Devam Ediyor"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Bağlı değil"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Bağlanıyor"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Bağlı"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Askıya alındı"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Bilinmiyor"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkt"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bayt"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Mevcut alt kimlik:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Varsayılan veri SIM\'inin alt kimliği:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"İndirme Bant Genişliği (kb/sn.):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Yükleme Bant Genişliği (kb/sn.):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Hücre Konumu Bilgisi (kullanımdan kaldırıldı):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE Fiziksel Kanal Yapılandırması:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Hücre Bilgilerini Yenileme Hızı:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Tüm Hücre Ölçümü Bilgileri:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Veri Hizmeti:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Dolaşım:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Aramayı Yönlendir:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Açılıştan Bu Yana PPP Sıfırlama Sayısı:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Geçerli Ağ:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Veri Alındı:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Ses Hizmeti:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Sinyal Gücü:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Sesli Arama Durumu:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Veri Gönderildi:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mesaj Bekleniyor:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefon Numarası:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Radyo Bandını Seç"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Sesli Ağ Türü:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Veri Ağı Türü:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Telefon dizinini seç"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Tercih Edilen Ağ Türünü Ayarla:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping Ana Makine Adı (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping Ana Makine Adı (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP İstemcisi Testi:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ping Testini Çalıştır"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Güncelle"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Yenile"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS Denetimini Aç/Kapat"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM\'e Özgü Bilgiler/Ayarlar"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Radyo Bant Modunu Ayarla"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Bant Listesi Yükleniyor…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Ayarla"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Başarısız"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Başarılı"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tablet bilgileri"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefon bilgileri"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operatör Temel Hazırlık Bilgileri"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Tetikleyici Operatör Temel Hazırlığı"</string>
 </resources>
diff --git a/res/values-uk/config.xml b/res/values-uk/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-uk/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 0956c7b..c54e780 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Приватний номер"</string>
     <string name="payphone" msgid="7936735771836716941">"Таксофон"</string>
     <string name="onHold" msgid="6132725550015899006">"Очікує"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Повідомлення від <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Повідомлення від оператора"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Код MMI запущено"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Виконується запит USSD…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Код MMI скасовано"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Лише NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Рекомендований режим мереж: бажано WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Рекомендований режим мереж: лише GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Рекомендований режим мережі: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Рекомендований режим мережі: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Рекомендований режим мережі: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Пріоритетний режим мережі: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Рекомендований режим мережі: загальний"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Рекомендований режим мережі: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Рекомендований режим мережі: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Рекомендований режим мережі: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Рекомендований режим мережі: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Рекомендований режим мережі: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Пріоритетний режим мережі: лише NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Пріоритетний режим мережі: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Пріоритетний режим мережі: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Пріоритетний режим мережі: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Пріоритетний режим мережі: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Пріоритетний режим мережі: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Пріоритетний режим мережі: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Пріоритетний режим мережі: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Пріоритетний режим мережі: LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Пріоритетний режим мережі: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Пріоритетний режим мережі: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Виклики"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Мережа"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Розширений режим 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Мультикатегорія"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Мультикатегорію увімкн."</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Мультикатегорію вимкнено"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (рекомендовано)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (рекомендується)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (рекомендується)"</string>
     <string name="network_global" msgid="3289646154407617631">"Усі"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Видалення номеру фікс. набору…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Номер фікс. набору видалено."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Фіксований номер (FDN) не оновлено, оскільки введено неправильний PIN-код."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN не оновлено, оскільки номер містить понад 20 цифр."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Номер FDN не оновлено, оскільки кількість цифр не може перевищувати <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Фіксований номер (FDN) не оновлено. PIN2-код неправильний або номер телефону відхилено."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Помилка набору фіксованого номера."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Читання із SIM-карти…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Неможливо зателефонувати. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> – не є екстреним номером."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Неможливо зателефонувати. Наберіть екстрений номер."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Екстрені виклики недоступні"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"PIN- і PUK-код може ввести лише власник пристрою."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Поліція"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Швидка допомога"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Пожежно-рятувальна служба"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Виклик із передаванням тексту в реальному часі"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Дозволити передавання повідомлень під час голосового виклику"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Функція RTT буде корисною для осіб із вадами слуху чи порушеннями мовлення, а також тих людей, для яких голосового спілкування недостатньо.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Докладніше&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT-виклики зберігаються як транскрибований текст\n       &lt;br&gt; – Функція RTT не підтримується для відеодзвінків"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Примітка. У роумінгу функція RTT недоступна."</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Телетайп вимкнено"</item>
     <item msgid="1449091874731375214">"Повнофункціональний телетайп"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Так"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ні"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Відхилити"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефон перебуває в режимі екстреного зворотного виклику"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"До <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Телефон перебуватиме в режимі екстреного зворотного виклику протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилини.\nВийти зараз?</item>
+      <item quantity="few">Телефон перебуватиме в режимі екстреного зворотного виклику протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилин.\nВийти зараз?</item>
+      <item quantity="many">Телефон перебуватиме в режимі екстреного зворотного виклику протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилин.\nВийти зараз?</item>
+      <item quantity="other">Телефон перебуватиме в режимі екстреного зворотного виклику протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилини.\nВийти зараз?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Обслуговування"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Налаштування"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Не введено&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Налаштування заборони дзвінків дезактивовано"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Змінити пароль"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Змінити пароль для заборони дзвінків"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Не вдалося змінити пароль для заборони дзвінків."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Не вдалося змінити пароль для заборони дзвінків"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Паролі не збігаються"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Введіть пароль із 4 цифр"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Пароль змінено"</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Підтвердити пароль"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Введіть пароль"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Налаштування заборони дзвінків"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Дезактивувати всі налаштування заборони дзвінків?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Мережа зайнята. Зателефонуйте пізніше."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Мережа перевантажена. Зверніться до свого мобільного оператора."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Виклик переспрямовано."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Щоб використовувати <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, потрібно ввімкнути мобільне передавання даних для SIM-карти <xliff:g id="SIM_NUMBER">%2$d</xliff:g> (у налаштуваннях мобільної мережі)."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Щоб використовувати <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, потрібно ввімкнути мобільне передавання й роумінг даних для SIM-карти <xliff:g id="SIM_NUMBER">%2$d</xliff:g> (у налаштуваннях мобільної мережі)."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Закрити"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Увімкнути передавання даних"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Вимкнути передавання даних"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ініціалізовано"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Відеодзвінки ініціалізовано"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Виклики через Wi-Fi ініціалізовано"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Сервіс EAB/Presence ініціалізовано"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Дані CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Увімкнути DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Перезапустити пристрій?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Щоб змінити це налаштування, перезапустіть пристрій."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Перезапустити"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Скасувати"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Потужність мобільного радіо"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Переглянути адресну книгу SIM-карти"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Переглянути фіксовані номери"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Переглянути службові номери"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Статус служби IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Статус IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Зареєстровано"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Не зареєстровано"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Доступно"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Недоступно"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Реєстрація IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nГолосові команди через LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nГолосові команди через Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВідеодзвінки: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nІнтерфейс UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Працює"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Не працює"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Лише екстрені виклики"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Вимкнути радіо"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роумінг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Немає роумінгу"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Неактивно"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Дзвінок"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Триває дзвінок"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Роз\'єднано"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Підключення"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Підключено"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Заблоковано"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Невідомо"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"пак."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"байт"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"дБм"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Поточний субідентифікатор:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Субідентифікатор SIM-карти для даних за умовчанням:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Пропускна спроможність DL (кбіт/с):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Пропускна спроможність UL (кбіт/с):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Геодані телефона (більше не підтримуються):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфігурація фізичного каналу LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Частота оновлення даних про мобільний зв\'язок:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Усі дані про показники мобільного зв\'язку:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Мобільний Інтернет:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роумінг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Переадресація виклику:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Кількість скидань PPP з часу завантаження:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Поточна мережа:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Отримані дані:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Служба голосових дзвінків:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Рівень сигналу:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Статус голосового дзвінка:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Надіслані дані:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Очікування на повідомлення:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Номер телефону:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Виберіть радіодіапазон"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Тип мережі голосових дзвінків:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Тип мережі передавання даних:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Виберіть телефонний код"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Установити потрібний тип мережі:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Надіслати запит ping на ім\'я хосту (www.google.com) через IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Надіслати запит ping на ім\'я хосту (www.google.com) через IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Тест клієнта HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Надіслати запит ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Оновити"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Оновити"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Увімк./вимк. перевірку DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Інформація/налаштування OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Установити режим радіодіапазону"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Завантаження списку діапазонів частот…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Установити"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Помилка"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Успішно"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Інформація про пристрій"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Інформація про телефон"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Інформація про ініціалізацію оператора"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Запустити ініціалізацію оператора"</string>
 </resources>
diff --git a/res/values-ur/config.xml b/res/values-ur/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ur/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index a192288..f7c525a 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"نجی نمبر"</string>
     <string name="payphone" msgid="7936735771836716941">"پے فون"</string>
     <string name="onHold" msgid="6132725550015899006">"ہولڈ پر"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> پیغام بھیجیں"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"کیریئر کا پیغام"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"‏MMI کوڈ شروع ہوگیا"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"‏USSD کوڈ چل رہا ہے…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"‏MMI کوڈ منسوخ ہوگیا"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"‏صرف NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"‏ترجیحی نیٹ ورک طرز: WCDMA ترجیحی"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"‏ترجیحی نیٹ ورک طرز: صرف GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"‏ترجیحی نیٹ ورک طرز: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"‏ترجیحی نیٹ ورک طرز: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"‏ترجیحی نیٹ ورک طرز: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"‏ترجیحی نیٹ ورک موڈ: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ترجیحی نیٹ ورک طرز: عالمی"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"‏ترجیحی نیٹ ورک طرز: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"‏ترجیحی نیٹ ورک وضع: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"‏ترجیحی نیٹ ورک کی وضع: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"‏ترجیحی نیٹ ورک کی وضع: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"‏ترجیحی نیٹ ورک کی وضع: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"‏ترجیحی نیٹ ورک موڈ: صرف NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"‏ترجیحی نیٹ ورک موڈ: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"کال کی جا رہی ہے"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"نیٹ ورک"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"‏Enhanced 4G LTE وضع"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"کثیر زمرہ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"کثیر زمرہ فعال ہوگیا"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"کثیر زمرہ غیر فعال ہوگیا"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (تجویز کردہ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"‏LTE (تجویز کردہ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"‏4G (تجویز کردہ)"</string>
     <string name="network_global" msgid="3289646154407617631">"عالمی"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"فکسڈ ڈائلنگ نمبر حذف کر رہا ہے…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"فکسڈ ڈائلنگ نمبر حذف ہوگیا۔"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"‏FDN اپ ڈیٹ نہیں ہوا تھا کیونکہ آپ نے ایک غلط PIN ٹائپ کر دیا۔"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"‏FDN اپ ڈیٹ نہیں ہوا کیونکہ نمبر 20 ہندسوں سے زائد ہے۔"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"‏FDN اپ ڈیٹ نہیں ہوا کیونکہ <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> نمبر ہندسوں سے زائد ہے۔"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"‏FDN اپ ڈیٹ نہیں ہوا تھا کیونکہ PIN2 غلط تھا یا فون نمبر مسترد کر دیا گیا تھا۔"</string>
     <string name="fdn_failed" msgid="216592346853420250">"‏FDN کا عمل ناکام ہوگیا۔"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"‏SIM کارڈ سے پڑھ رہا ہے…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"کال نہیں کی جا سکتی۔ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ایک ہنگامی نمبر نہیں ہے۔"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"کال نہیں کی جا سکتی۔ ایک ہنگامی نمبر ڈائل کریں۔"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"ہنگامی کالنگ دستیاب نہیں ہے"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"‏صرف آلہ کا مالک ہی PIN/PUK کوڈ درج کرسکتا ہے۔"</string>
     <string name="police_type_description" msgid="2819533883972081757">"پولیس"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ایمبولینس"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"آگ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"‏ریئل ٹائم ٹیکسٹ (RTT) کال"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"صوتی کال کے اندر پیغام رسانی کی اجازت دیں"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"‏RTT ایسے کالرز کو اسسٹ کرتا ہے جو بہرے ہیں، اونچا سنتے ہیں، بولنے سے معزور ہیں یا ان کیلئے صرف آواز ہی کافی نہیں ہے۔‎&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;‎مزید جانیں‎&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT کالز پیغام ٹرانسکرپٹ کے بطور محفوظ کی جاتی ہیں\n       ‎&lt;br&gt; - RTT ویڈیو کالز کیلئے دستیاب نہیں ہے"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"‏نوٹ: رومنگ میں ہوتے ہوئے RTT دستیاب نہیں ہے"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"‏TTY آف"</item>
     <item msgid="1449091874731375214">"‏TTY مکمل"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ہاں"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"نہیں"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"کالعدم کریں"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"فون ہنگامی کال بیک وضع میں ہے"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> تک"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">فون <xliff:g id="COUNT_1">%s</xliff:g> منٹ تک ہنگامی کال بیک وضع میں رہے گا۔\n کیا آپ ابھی باہر نکلنا چاہتے ہیں؟</item>
+      <item quantity="one">فون <xliff:g id="COUNT_0">%s</xliff:g> منٹ تک ہنگامی کال بیک وضع میں رہے گا۔\n کیا آپ ابھی باہر نکلنا چاہتے ہیں؟</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"سروس"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"سیٹ اپ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"‏&lt;سیٹ نہیں ہے&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"کال میں رکاوٹ کو غیر فعال کر دیا گیا"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"پاس ورڈ تبدیل کریں"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"کال میں رکاوٹ والے پاس ورڈ کو تبدیل کریں"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"کال میں رکاوٹ والا پاس ورڈ تبدیل نہیں ہو سکتا۔"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"کال میں رکاوٹ والا پاس ورڈ تبدیل نہیں ہو سکتا"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"پاس ورڈز مماثل نہیں ہیں"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 نمبرز والا ایک پاس ورڈ درج کریں"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"پاس ورڈ تبدیل ہو گیا"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"پاس ورڈ کی توثیق کریں"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"پاس ورڈ درج کریں"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"کال میں رکاوٹ کی ترتیبات"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"کال میں رکاوٹ والی سبھی ترتیبات کو غیر فعال کریں؟"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"نیٹ ورک مصروف ہے۔ براہ کرم بعد میں دوبارہ اپنی کال آزمائیں۔"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"نیٹ ورک مصروف ہے۔ مدد کے لیے اپنے موبائل آپریٹر سے رابطہ کریں۔"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"کال کو مُنصرف کیا گیا۔"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"‏<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> استعمال کرنے کے لیے، یقینی بنائيں کہ موبائل ڈیٹا SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> کے لیے آن ہے۔ آپ موبائل نیٹ ورک کی ترتیبات میں اسے تبدیل کر سکتے ہیں۔"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"‏<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> استعمال کرنے کے لیے، یقینی بنائيں کہ موبائل ڈیٹا اور ڈیٹا رومنگ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> کے لیے آن ہیں۔ آپ موبائل نیٹ ورک کی ترتیبات میں اسے تبدیل کر سکتے ہیں۔"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"مسترد کریں"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ڈیٹا کنکشن فعال کریں"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ڈیٹا کنکشن غیر فعال کریں"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"‏VoLTE سے لیس"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ویڈیو کالنگ فراہم کردہ"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"‏WiFi کالنگ فراہم کردہ"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"‏EAB/موجودگی فراہم کر دی گئی"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"‏CBRS ڈیٹا"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"‏DSDS فعال کریں"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"آلہ دوبارہ شروع کریں؟"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"یہ ترتیب تبدیل کرنے کیلئے آپ کو اپنا آلہ ریسٹارٹ کرنا ہوگا۔"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"دوبارہ شروع کریں"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"منسوخ کریں"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"موبائل ریڈیو پاور"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"‏SIM ایڈریس بک دیکھیں"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"فکسڈ ڈائلنگ نمبرز دیکھیں"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"سروس ڈائلنگ نمبرز دیکھیں"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"‏IMS سروس اسٹیٹس"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"‏IMS اسٹیٹس"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"رجسٹرڈ ہے"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"رجسٹر نہیں ہے"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"دستیاب ہے"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"دستیاب نہیں ہے"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"‏IMS رجسٹریشن: <xliff:g id="STATUS">%1$s</xliff:g>\nوائس اوور LTE‏: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\n‎وائس اوور WiFi‏: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\n‎ویڈیو کالنگ: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT انٹرفیس: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"سروس میں"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"سروس میں نہیں ہے"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"صرف ہنگامی کالیں"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ریڈیو آف کریں"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"رومنگ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"رومنگ میں نہيں"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"معطل"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"کال کی جا رہی ہے"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"کال کی جا رہی ہے"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"غیر منسلک"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"منسلک ہو رہا ہے"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"منسلک"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"معطل کر دیا گیا"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"نامعلوم"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"پیکٹس"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"بائٹس"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"‏موجودہ subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"‏ڈیفالٹ ڈیٹا SIM کی SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"‏DL بینڈ وڈتھ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"‏UL بینڈ وڈتھ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"سیل کے مقام کی معلومات (فرسودہ):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"‏LTE فزيکل چینل کنفیگریشن:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"سیل کی معلومات ریفریش کرنے کی شرح:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"سیل پیمائش کی تمام معلومات:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ڈیٹا سروس:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"رومنگ:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"کال ری ڈائریکٹ:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"‏بوٹ کے بعد سے PPP ری سیٹ کی تعداد:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"موجودہ نیٹ ورک:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ڈیٹا موصول ہوا:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"صوتی سروس:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"سگنل کی قوت:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"صوتی کال کا اسٹیٹس:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ڈیٹا بھیج دیا گیا:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"پیغام منتظر ہے:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"فون نمبر:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ریڈیو بینڈ منتخب کریں"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"صوتی نیٹ ورک کی قسم:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ڈیٹا نیٹ ورک کی قسم:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"فون انڈیکس منتخب کریں"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ترجیحی نیٹ ورک کی قسم سیٹ کریں:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"‏میزبان کا نام پنگ کریں‏‎(www.google.com)‎ ‏IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"‏میزبان کا نام پنگ کریں(www.google.com) ‏IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"‏HTTP کلائنٹ ٹیسٹ:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"پنگ ٹیسٹ چلائیں"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"اپ ڈیٹ کریں"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ریفریش کریں"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"‏DNS چیک ٹوگل کریں"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"‏OEM-کیلئے مخصوص معلومات/ترتیبات"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ریڈیو بینڈ موڈ سیٹ کریں"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"بینڈ کی فہرست لوڈ ہو رہی ہے…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"سیٹ کریں"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ناکام"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"کامیاب"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ٹیبلٹ کی معلومات"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"فون کی معلومات"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"کیرئیر فراہمی معلومات"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ٹرگر کیرئیر فراہمی"</string>
 </resources>
diff --git a/res/values-uz/config.xml b/res/values-uz/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-uz/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index c27cb2f..dec6650 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Yashirin raqam"</string>
     <string name="payphone" msgid="7936735771836716941">"Taksofon"</string>
     <string name="onHold" msgid="6132725550015899006">"Kutmoqda"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> orqali xabar"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operatordan xabar"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI kodi ishga tushirildi"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD so‘rov bajarilmoqda…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI kodi bekor qilindi"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Faqat NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Tanlangan tarmoq rejimi: WCDMA tanlangan"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Tanlangan tarmoq rejimi: faqat GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Tanlangan tarmoq rejimi: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Tanlangan tarmoq rejimi: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Tanlangan tarmoq rejimi: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Maqbul tarmoq rejimi: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Tanlangan tarmoq rejimi: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Tanlangan tarmoq rejimi: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Ma’qul tarmoq rejimi: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Tavsiya etilgan tarmoq rejimi: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Tavsiya etilgan tarmoq rejimi: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Tavsiya etilgan tarmoq rejimi: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Maqbul tarmoq rejimi: faqat NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Maqbul tarmoq rejimi: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Maqbul tarmoq rejimi: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Maqbul tarmoq rejimi: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Maqbul tarmoq rejimi: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Maqbul tarmoq rejimi: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Maqbul tarmoq rejimi: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Maqbul tarmoq rejimi: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Maqbul tarmoq rejimi: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Maqbul tarmoq rejimi: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Maqbul tarmoq rejimi: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Chaqiruvlar"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Tarmoq"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Kuchaytirilgan 4G LTE rejimi"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Ko‘p darajali"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Ko‘p daraja yoqildi"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Ko‘p daraja o‘chirildi"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (tavsiya etiladi)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (tavsiya qilinadi)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (tavsiya qilinadi)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Ruxsat berilgan raqamlar o‘chirilmoqda…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Ruxsat berilgan raqamlar o‘chirildi."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN yangilanmadi, chunki siz PIN-kodni noto‘g‘ri kiritdingiz."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Ruxsat etilgan raqam 20 xonali raqam cheklovidan oshganligi uchun yangilanmadi."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Ruxsat etilgan raqam <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> xonali raqam cheklovidan oshganligi uchun yangilanmadi."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN yangilanmadi. PIN2 kodi xato yoki telefon raqami rad qilingan."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN jarayoni amalga oshmadi."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM-kartadan o‘qilmoqda…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Qo‘ng‘iroq qilib bo‘lmadi. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> favqulodda raqam emas."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Qo‘ng‘iroq qilib bo‘lmadi. Favqulodda raqamga tering."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Favqulodda xizmat raqamiga chaqiruv qilib bo‘lmaydi"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Faqat qurilma egasi PIN/PUK kodlarini kirita oladi, xolos."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Politsiya"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Tez tibbiy yordam"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"O‘t o‘chirish xizmati"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"RTT chaqiruvi"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Video chaqiruvlar vaqtida xabarlar almashinuviga ruxsat berish"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT kar, eshitish qobiliyati va nutqiy faoliyati buzilgan shaxslarga mo‘ljallangan funksiyadir.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Batafsil&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT chaqiruvlari transkripsiya sifatida saqlanadi.\n       &lt;br&gt; – RTT funksiyasidan video chaqiruvlar vaqtida foydalanib bo‘lmaydi."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Eslatma. Roumingda RTT funksiyasidan foydalanish imkonsiz."</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Teletayp yoqilmagan"</item>
     <item msgid="1449091874731375214">"To‘liq funksiyali teletayp"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ha"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Yo‘q"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Rad etish"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon favqulodda teskari chaqiruv rejimida"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> gacha"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefon favqulodda teskari chaqiruv rejimida <xliff:g id="COUNT_1">%s</xliff:g> daqiqa qoladi.\nBu rejimdan chiqilsinmi?</item>
+      <item quantity="one">Telefon favqulodda teskari chaqiruv rejimida <xliff:g id="COUNT_0">%s</xliff:g> daqiqa qoladi.\nBu rejimdan chiqilsinmi?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Xizmat"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Sozlash"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Kiritilmagan&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Chaqiruvlarni taqiqlash xususiyati faolsizlantirildi"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Parolni o‘zgartirish"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Chaqiruvlarni taqiqlash xususiyati uchun parolni o‘zgartirish"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Chaqiruvlarni taqiqlash xususiyati uchun parolni o‘zgartirib bo‘lmadi."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Chaqiruvlarni taqiqlash xususiyati uchun parolni o‘zgartirish imkonsiz."</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Parollar bir-biriga mos kelmadi"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 ta raqamli parolni kiriting"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Parol o‘zgartirildi"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Parolni tasdiqlang"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Parolni kiriting"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Chaqiruvlarni taqiqlash sozlamalari"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Barcha chaqiruvlarni taqiqlash sozlamalari faolsizlantirilsinmi?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Tarmoq band. Chaqiruvni keyinroq qayta takrorlang."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Tarmoq band. Uyali tarmoq operatoringizga murojaat qiling."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Chiquvchi chaqiruv uzatildi."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> imkoniyatlaridan foydalanish uchun <xliff:g id="SIM_NUMBER">%2$d</xliff:g> raqamida mobil internet yoqilgan bo‘lishi lozim. Buning uchun mobil tarmoq sozlamalariga kiring."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> imkoniyatlaridan foydalanish uchun <xliff:g id="SIM_NUMBER">%2$d</xliff:g> raqamida mobil internet va internet rouming yoqilgan bo‘lishi lozim. Buning uchun mobil tarmoq sozlamalariga kiring."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Yopish"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Mobil internetni yoqish"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Mobil internetni faolsizlantirish"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE sinxronizatsiyasi yoniq"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video chaqiruvlar funksiyasi yoniq"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi orqali chaqiruvlar funksiyasi yoniq"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence sinxronizatsiyasi yoniq"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS axboroti"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS funksiyasini yoqish"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Qurilma o‘chirib yoqilsinmi?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Bu sozlamani o‘zgartirish uchun qurilmangizni o‘chirib yoqing."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"O‘chirib yoqish"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Bekor qilish"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Radio signal quvvati"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM kartadagi abonentlar ro‘yxatini ochish"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ruxsat etilgan raqamlar ro‘yxatini ochish"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xizmatlarni terish raqamlarini ochish"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS xizmati holati"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS holati"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registratsiya qilingan"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Registratsiya qilinmagan"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Mavjud"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Mavjud emas"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registratsiyasi: <xliff:g id="STATUS">%1$s</xliff:g>\nVoLTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoWi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo chaqiruvlar: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interfeysi: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Xizmat doirasida"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Xizmat doirasidan tashqarida"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Faqat favqulodda chaqiruvlar"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio yoqilmagan"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Rouming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Rouming faolsizlantirilgan"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Faol emas"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Jiringlamoqda"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Chaqiruv"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Ulanmagan"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Ulanmoqda"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Ulandi"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Bloklangan"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Noma’lum"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bayt"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Joriy qoʻshimcha identifikator:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Mobil internet uchun birlamchi SIM kartaning qoʻshimcha identifikatori:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Axborot uzatish tezligi (kbit/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL kanalining axborot uzatish tezligi (kbit/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Tarmoq joylashuvi haqidagi axborot (eskirgan):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE jismoniy kanal konfiguratsiyasi:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Tarmoq haqidagi axborotning yangilanish darajasi:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Tarmoq statistikasi:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Mobil internet xizmati:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Rouming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Chaqiruvlarni uzatish:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"O‘chirib yoqilgandan keyin PPP protokoli tiklanishining soni:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Joriy tarmoq:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Qabul qilingan trafik:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Ovozli aloqa xizmati:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signal darajasi:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Ovozli chaqiruvlar holati:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Yuborilgan trafik:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Parallel xabar:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefon raqami:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Radiostansiyani tanlash"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Ovozli aloqa uchun tarmoq turi:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Trafik uchun tarmoq turi:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Telefon kodini tanlang"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Afzal tarmoq turini tanlash:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"www.google.com uchun ping, IPv4 so‘rovining host nomi:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"www.google.com uchun ping, IPv6 so‘rovining host nomi:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP mijozini tekshirish:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ping tekshiruvini boshlash"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Yangilash"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Yangilash"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS tekshiruvini yoqish/o‘chirish"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM maxsus axboroti va sozlamalari"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Tarmoq rejimini sozlash"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Chastotalar ro‘yxati yuklanmoqda…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Saqlash"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Bajarilmadi"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Bajarildi"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Planshet haqida"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefon haqida"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operator sinxronizatsiyasi haqida"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Operator sinxronizatsiyasini yoqish/o‘chirish"</string>
 </resources>
diff --git a/res/values-vi/config.xml b/res/values-vi/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-vi/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 4db10a9..b802417 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Số cá nhân"</string>
     <string name="payphone" msgid="7936735771836716941">"Điện thoại công cộng"</string>
     <string name="onHold" msgid="6132725550015899006">"Đang chờ"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Tin nhắn <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Tin nhắn nhà mạng"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Đã bắt đầu mã MMI"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Mã USSD đang chạy…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Mã MMI đã bị hủy"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Chỉ NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Chế độ mạng được ưa thích: ưu tiên WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Chế độ mạng được ưa thích: chỉ GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Chế độ mạng được ưa thích: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Chế độ mạng được ưa thích: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Chế độ mạng được ưa thích: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Chế độ mạng ưu tiên: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Chế độ mạng được ưa thích: Toàn cầu"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Chế độ mạng được ưa thích: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Chế độ mạng ưu tiên: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Chế độ mạng được ưa thích: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Chế độ mạng được ưa thích: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Chế độ mạng được ưa thích: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Chế độ mạng ưu tiên: Chỉ NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Chế độ mạng ưu tiên: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Chế độ mạng ưu tiên: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Chế độ mạng ưu tiên: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Chế độ mạng ưu tiên: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Chế độ mạng ưu tiên: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Chế độ mạng ưu tiên: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Chế độ mạng ưu tiên: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Chế độ mạng ưu tiên: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Chế độ mạng ưu tiên: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Chế độ mạng ưu tiên: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Đang gọi"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Mạng"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Chế độ 4G LTE tăng cường"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Nhiều danh mục"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Đã bật nhiều danh mục"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Đã vô hiệu hóa nhiều danh mục"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (khuyên dùng)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (khuyên dùng)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (được khuyến nghị)"</string>
     <string name="network_global" msgid="3289646154407617631">"Toàn cầu"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Đang xóa số quay định sẵn…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Đã thêm số quay định sẵn."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"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="155512764412225645">"Số gọi định sẵn (FDN) chưa được cập nhật do vượt quá 20 chữ số."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Số gọi định sẵn (FDN) chưa cập nhật do vượt quá <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> chữ số."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"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="fdn_failed" msgid="216592346853420250">"Thao tác FDN không thành công."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Đang đọc từ thẻ SIM…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Không thực hiện được cuộc gọ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="2785803395047793634">"Không thực hiện được cuộc gọi. Hãy quay số khẩn cấp."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Không sử dụng được tính năng gọi khẩn cấp"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Chỉ chủ sở hữu của thiết bị này mới có thể nhập mã PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Cảnh sát"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Cấp cứu"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Hỏa hoạn"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Cuộc gọi qua Tin nhắn theo thời gian thực (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Cho phép nhắn tin trong cuộc gọi thoại"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Tin nhắn theo thời gian thực (RTT) trợ giúp những người gọi khiếm thính, bị suy giảm thính lực, không có khả năng nói hoặc cần thêm hỗ trợ ngoài giọng nói.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Tìm hiểu thêm&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Cuộc gọi qua RTT được lưu dưới dạng bản chép lời tin nhắn\n       &lt;br&gt; - Không thực hiện được cuộc gọi video qua RTT"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Lưu ý: Không thể sử dụng tin nhắn theo thời gian thực (RTT) trong khi chuyển vùng"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Tắt TTY"</item>
     <item msgid="1449091874731375214">"TTY Đầy đủ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Có"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Không"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Loại bỏ"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Điện thoại đang ở chế độ gọi lại khẩn cấp"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Cho đến <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Điện thoại sẽ ở chế độ gọi lại khẩn cấp trong <xliff:g id="COUNT_1">%s</xliff:g> phút.\nBạn có muốn thoát ngay không?</item>
+      <item quantity="one">Điện thoại sẽ ở chế độ gọi lại khẩn cấp trong <xliff:g id="COUNT_0">%s</xliff:g> phút.\nBạn có muốn thoát ngay không?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Dịch vụ"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Thiết lập"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Chưa đặt&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Đã hủy kích hoạt cài đặt chặn cuộc gọi"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Đổi mật khẩu"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Đổi mật khẩu chặn cuộc gọi"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Không thể đổi mật khẩu chặn cuộc gọi."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Không thể thay đổi mật khẩu chặn cuộc gọi"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Mật khẩu không khớp"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Nhập mật khẩu gồm 4 số"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Đã đổi mật khẩu"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Xác nhận mật khẩu"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Nhập mật khẩu"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Cài đặt chặn cuộc gọi"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Bạn muốn hủy kích hoạt tất cả cài đặt chặn cuộc gọi?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Tất cả các nhân viên hỗ trợ hiện đang bận. Vui lòng thử gọi lại sau."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Đang nghẽn mạng. Hãy liên hệ với nhà mạng di động để được trợ giúp."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Đã chuyển hướng cuộc gọi."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Để sử dụng <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, hãy đảm bảo dữ liệu di động cho SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> đang bật. Bạn có thể thay đổi tùy chọn cài đặt này trong mục cài đặt mạng di động."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Để sử dụng <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, hãy đảm bảo dữ liệu di động và tính năng chuyển vùng dữ liệu cho SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> đang bật. Bạn có thể thay đổi các tùy chọn cài đặt này trong mục cài đặt mạng di động."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Bỏ qua"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Bật kết nối dữ liệu"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Tắt kết nối dữ liệu"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Đã cấp phép VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Đã cấp phép gọi điện video"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Đã cấp phép Gọi qua Wi-Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Đã cấp phép hiện diện/EAB"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Dữ liệu Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Bật DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Khởi động lại thiết bị?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Bạn cần khởi động lại thiết bị để thay đổi chế độ cài đặt này."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Khởi động lại"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Hủy"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Cường độ của sóng di động"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Xem sổ địa chỉ trên SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Xem số gọi định sẵn"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xem số quay số dịch vụ"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Trạng thái dịch vụ IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Trạng thái IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Đã đăng ký"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Chưa đăng ký"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Có sẵn"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Không có sẵn"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Đăng ký IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nThoại qua LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nThoại qua Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nGọi điện video: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nGiao diện UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Đang sử dụng"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Không có dịch vụ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Chỉ cuộc gọi khẩn cấp"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Tín hiệu di động đang tắt"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Chuyển vùng"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Không chuyển vùng"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Không hoạt động"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Đang đổ chuông"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Đang gọi điện"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Đã ngắt kết nối"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Đang kết nối"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Đã kết nối"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Bị tạm ngưng"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Không xác định"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"byte"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Mã phụ hiện tại:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Mã phụ của SIM dữ liệu mặc định:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Băng thông DL (kb/giây):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Băng thông UL (kb/giây):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Thông tin vị trí mạng di động (không dùng nữa):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Cấu hình kênh LTE thực:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Tốc độ làm mới thông tin mạng di động:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Toàn bộ thông tin về số đo mạng di động:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Dịch vụ dữ liệu:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Chuyển vùng:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Chuyển hướng cuộc gọi:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Số lần đặt lại PPP kể từ khi khởi động:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Mạng hiện tại:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Đã nhận dữ liệu:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Dịch vụ thoại:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Cường độ tín hiệu:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Trạng thái cuộc gọi thoại:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Đã gửi dữ liệu:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Tin nhắn đang đợi:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Số điện thoại:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Chọn dải tần số"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Loại mạng thoại:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Loại mạng dữ liệu:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Chọn chỉ mục điện thoại"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Đặt loại mạng ưu tiên:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Tên máy chủ Ping (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Tên máy chủ Ping (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Kiểm tra máy khách HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Chạy kiểm tra ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Cập nhật"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Làm mới"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Bật/tắt chế độ kiểm tra DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Thông tin/Cài đặt dành riêng cho OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Đặt chế độ dải tần số"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Đang tải danh sách băng tần…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Đặt"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Không thành công"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Thành công"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Thông tin về máy tính bảng"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Thông tin điện thoại"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Thông tin cấp phép của nhà mạng"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Kích hoạt dịch vụ cấp phép của nhà mạng"</string>
 </resources>
diff --git a/res/values-zh-rCN/config.xml b/res/values-zh-rCN/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-zh-rCN/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 9f88ec1..5bbc52a 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"私密号码"</string>
     <string name="payphone" msgid="7936735771836716941">"公用电话"</string>
     <string name="onHold" msgid="6132725550015899006">"保持"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>信息"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"运营商信息"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI 码已启动"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"正在运行 USSD 代码..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI 码已取消"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"仅限 NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"首选网络模式：首选 WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"首选网络模式：仅限 GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"首选网络模式：LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"首选网络模式：GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"首选网络模式：CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"首选网络模式：LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"首选网络模式：通用"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"首选网络模式：LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"首选网络模式：LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"首选网络模式：LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"首选网络模式：TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"首选网络模式：LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"首选网络模式：仅限 NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"首选网络模式：NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"首选网络模式：NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"首选网络模式：NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"首选网络模式：NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"首选网络模式：NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"首选网络模式：NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"首选网络模式：NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"首选网络模式：NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"首选网络模式：NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"首选网络模式：NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"通话"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"网络"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"增强型 4G LTE 模式"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"多类别"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"已启用多类别"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"已停用多类别"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" （推荐）"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE（推荐）"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G（推荐）"</string>
     <string name="network_global" msgid="3289646154407617631">"通用"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"正在删除固定拨号联系人..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"已删除固定拨号联系人。"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"固定拨号未更新，因为输入的 PIN 码有误。"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"未能更新 FDN，因为号码超过 20 位数。"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"未能更新 FDN，因为号码超过 <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> 位数。"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"固定拨号未更新。PIN2 码有误，或电话号码遭拒。"</string>
     <string name="fdn_failed" msgid="216592346853420250">"固定拨号操作失败。"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"正在从SIM卡读取..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"无法拨打该电话。<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> 不是紧急呼救号码。"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"无法拨打该电话。请拨打紧急呼救电话。"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"无法使用紧急呼救功能"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"只有设备所有者才能输入 PIN/PUK 码。"</string>
     <string name="police_type_description" msgid="2819533883972081757">"警察局"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"救护车"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"火警"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"实时信息 (RTT) 通话"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"允许在语音通话中发送信息"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT 可为以下类型的来电者提供协助：失聪者、听力障碍人士、语言障碍人士或需要语音以外服务的人。&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;了解详情&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - 系统会以信息转录的方式存储 RTT 通话\n       &lt;br&gt; - 视频通话不支持 RTT"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"注意：漫游时无法使用 RTT 功能"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY 关闭"</item>
     <item msgid="1449091874731375214">"TTY 完整"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"是"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"否"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"关闭"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"手机正处于紧急回拨模式"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"直到 <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">手机在 <xliff:g id="COUNT_1">%s</xliff:g> 分钟内都将处于紧急回拨模式。\n您要立即退出吗？</item>
+      <item quantity="one">手机在 <xliff:g id="COUNT_0">%s</xliff:g> 分钟内都将处于紧急回拨模式。\n您要立即退出吗？</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"服务"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"设置"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;未设置&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"通话限制已停用"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"更改密码"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"更改通话限制密码"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"无法更改通话限制密码。"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"无法更改通话限制密码"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"密码不匹配"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"输入 4 位数密码"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"密码已更改"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"确认密码"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"输入密码"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"通话限制设置"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"要停用所有通话限制设置吗？"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"网络繁忙，请稍后再次尝试致电。"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"网络拥挤，请联系您的移动运营商寻求协助。"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"已转移通话。"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>服务，请确保已为 SIM (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>) 开启移动数据。您可以在移动网络设置中进行更改。"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>服务，请确保已为 SIM (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>) 开启移动数据和数据网络漫游。您可以在移动网络设置中进行更改。"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"关闭"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"启用数据网络连接"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"停用数据网络连接"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"已配置 VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"已配置视频通话"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"已配置 WLAN 通话"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"已配置 EAB/Presence"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS 数据"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"启用 DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"要重启设备吗？"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"您需要重启设备才能让这项设置更改生效。"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"重启"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"取消"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"移动无线装置电源"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"查看 SIM 卡通讯录"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"查看固定拨号号码"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"查看服务拨号号码"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS 服务状态"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS 状态"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"已注册"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"未注册"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"可用"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"不支持该付款方式"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS 注册：<xliff:g id="STATUS">%1$s</xliff:g>\nLTE 语音通话：<xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWLAN 语音通话：<xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\n视频通话：<xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT 接口：<xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"服务中"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"不在服务区"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"只能拨打紧急呼救电话"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"关闭无线装置"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"漫游"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"未使用漫游服务"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"闲置"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"正在响铃"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"正在通话"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"已断开连接"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"正在连接"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"已连接"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"已暂停"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"未知"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"字节"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"当前 SubId："</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"默认数据 SIM 卡的 SubId："</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL 带宽 (kbps)："</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL 带宽 (kbps)："</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"移动网络位置信息（已弃用）："</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE 物理信道配置："</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"移动网络信息刷新频率："</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"所有移动网络测量信息："</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"数据服务："</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"漫游："</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI："</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"来电转接："</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"启动后重置 PPP 的次数："</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"当前网络："</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"已接收的数据量："</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"语音服务："</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"信号强度："</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"语音通话状态："</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"已发送的数据量："</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"消息等待："</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"电话号码："</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"选择无线装置频道"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"语音网络类型："</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"数据网络类型："</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"选择电话号码索引"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"设置首选网络类型："</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ping 主机名(www.google.com) IPv4："</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ping 主机名(www.google.com) IPv6："</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP 客户端测试："</string>
+    <string name="ping_test_label" msgid="448617502935719694">"运行 ping 测试"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC："</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"更新"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"刷新"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"切换 DNS 检查"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"特定 OEM 的信息/设置"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"设置无线装置频道模式"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"正在加载频道列表…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"设置"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"失败"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"成功"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"平板电脑信息"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"手机信息"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"运营商配置信息"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"触发运营商配置"</string>
 </resources>
diff --git a/res/values-zh-rHK/config.xml b/res/values-zh-rHK/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-zh-rHK/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index e786201..bad8894 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"私人號碼"</string>
     <string name="payphone" msgid="7936735771836716941">"公共電話"</string>
     <string name="onHold" msgid="6132725550015899006">"保留通話"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"「<xliff:g id="MMICARRIER">%s</xliff:g>」訊息"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"流動網絡供應商訊息"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI 碼開始執行"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"正在執行 USSD 碼..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI 碼已取消"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"僅限 NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"慣用網絡模式：偏好 WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"慣用網絡模式：僅限 GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"首選網絡模式：LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"首選網絡模式：GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"首選網絡模式：CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"首選網絡模式：LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"首選網絡模式：全球"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"首選網絡模式：LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"首選網絡模式：LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"首選網絡模式：LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"首選網絡模式：TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"首選網絡模式：LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"首選網絡模式：僅限 NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"首選網絡模式：NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"首選網絡模式：NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"首選網絡模式：NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"首選網絡模式：NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"首選網絡模式：NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"首選網絡模式：NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"首選網絡模式：NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"首選網絡模式：NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"首選網絡模式：NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"首選網絡模式：NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"通話"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"網絡"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"強化 4G LTE 模式"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"多類別資訊"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"已啟用多類別資訊"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"多類別資訊已停用"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (建議)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (建議)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (建議)"</string>
     <string name="network_global" msgid="3289646154407617631">"通用"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"正在刪除固定撥號…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"固定撥號已刪除。"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"您所輸入的 PIN 碼不正確，FDN 未更新。"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"號碼超過 20 位數，FDN 未更新。"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"號碼超過 <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> 位數，FDN 未更新。"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN 無法更新。PIN2 碼不正確或電話號碼被拒。"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN 操作失敗。"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"正在從 SIM 卡讀取..."</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"無法通話。<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> 不是緊急號碼。"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"無法通話。撥打緊急號碼。"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"無法撥打緊急電話"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"只有裝置擁有者才能輸入 PIN/PUK 代碼。"</string>
     <string name="police_type_description" msgid="2819533883972081757">"警局"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"救護車"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"火"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"即時文字短訊 (RTT) 通話"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"允許在語音通話中傳送訊息"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT 可協助耳聾、有聽力障礙、語言失能或不僅僅需要語音的通話者。&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;瞭解詳情&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT 通話內容會儲存為訊息轉錄內容 \n       &lt;br&gt; - RTT 不適用於視像通話"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"注意：漫遊時無法使用 RTT"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"關閉 TTY"</item>
     <item msgid="1449091874731375214">"TTY 完整模式"</item>
@@ -611,6 +639,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"是"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"否"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"關閉"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"手機處於緊急回撥模式"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"直至<xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">手機在接下來的 <xliff:g id="COUNT_1">%s</xliff:g> 分鐘都將處於緊急回撥模式。\n您要立即退出嗎？</item>
+      <item quantity="one">手機在接下來的 <xliff:g id="COUNT_0">%s</xliff:g> 分鐘都將處於緊急回撥模式。\n您要立即退出嗎？</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"服務"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"設定"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;未設定&gt;"</string>
@@ -750,7 +784,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"已停用通話限制"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"變更密碼"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"變更通話限制密碼"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"無法變更通話限制密碼"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"無法變更通話限制密碼"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"密碼不相符"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"輸入 4 位數密碼"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"已變更密碼"</string>
@@ -759,7 +793,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"確認密碼"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"輸入密碼"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"通話限制設定"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"要停用所有通話限制設定嗎？"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"網絡忙碌中。請稍後再撥。"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"網絡壅塞。請通知您的流動網絡供應商提供協助。"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"通話已轉向。"</string>
@@ -789,4 +822,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"如要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>，請確保 SIM 卡 (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>) 的流動數據已開啟。您可以在流動網絡設定中變更此設定。"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"如要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>，請確保 SIM 卡 <xliff:g id="SIM_NUMBER">%2$d</xliff:g> 的流動數據和數據漫遊已開啟。您可以在流動網絡設定中變更此設定。"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"關閉"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"啟用數據連線"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"停用數據連線"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"已佈建 VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"已佈建視像通話"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"已佈建 Wi-Fi 通話"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"已佈建 EAB/Presence"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS 數據"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"啟用 DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"要重新啟動裝置嗎？"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"您需要重新啟動裝置，才可變更此設定。"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"重新啟動"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"取消"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"流動無線電的電源"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"查看 SIM 卡通訊錄"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"查看固定撥號"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"查看服務撥號"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS 服務狀態"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS 狀態"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"已註冊"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"未註冊"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"有空"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"無法使用"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS 註冊：<xliff:g id="STATUS">%1$s</xliff:g>\n語音 LTE：<xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\n語音 Wi-Fi：<xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\n視像通話：<xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT 介面：<xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"服務中"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"沒有服務"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"只可撥打緊急電話"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"收音機已關閉"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"漫遊"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"沒有使用漫遊"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"閒置"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"正在發出鈴聲"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"正在通話"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"已解除連接"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"正在連線"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"已連線"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"已停用"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"不明"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkt"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"位元組"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"客戶編號"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"目前的子 ID："</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"預設數據 SIM 卡的子 ID："</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"下載頻寬 (kbps)："</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"上載頻寬 (kbps)："</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"發射站位置資料 (已淘汰)："</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE 實體渠道設定："</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"發射站資料重新整理頻率："</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"所有發射站量度資料："</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"數據服務："</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"漫遊："</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI："</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"來電轉駁："</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"開機後重設 PPP 的次數："</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"目前的網絡："</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"收到的數據："</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"語音服務："</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"訊號強度："</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"視像通話狀態："</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"已傳送的資料："</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"正在等待訊息："</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"電話號碼："</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"選擇無線電波段"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"語音網絡類型："</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"數據網絡類型："</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"選取手機索引"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"設定偏好的網絡類型："</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"連線偵測主機名稱 (www.google.com) IPv4："</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"連線偵測主機名稱 (www.google.com) IPv6："</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP 用戶端測試："</string>
+    <string name="ping_test_label" msgid="448617502935719694">"執行連線偵測測試"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC："</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"更新"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"重新整理"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"切換 DNS 檢查"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM 專用資訊/設定"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"設定無線電頻段模式"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"正在載入頻段清單…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"設定"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"失敗"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"成功"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"平板電腦資訊"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"手機資訊"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"流動網絡供應商佈建資料"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"觸發流動網絡供應商佈建程序"</string>
 </resources>
diff --git a/res/values-zh-rTW/config.xml b/res/values-zh-rTW/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-zh-rTW/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 7f243c8..45096ab 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"私人號碼"</string>
     <string name="payphone" msgid="7936735771836716941">"公用電話"</string>
     <string name="onHold" msgid="6132725550015899006">"通話保留"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"「<xliff:g id="MMICARRIER">%s</xliff:g>」的訊息"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"來自電信業者的訊息"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI 碼開始執行"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"正在執行 USSD 碼…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI 碼已取消"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"僅使用 NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"慣用網路模式：偏好 WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"慣用網路模式：僅限 GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"慣用網路模式：LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"慣用網路模式：GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"慣用網路模式：CDMA + LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"首選網路模式：LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"慣用網路模式：通用"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"慣用網路模式：LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"偏好網路模式：LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"偏好網路模式：LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"偏好網路模式：TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"偏好網路模式：LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"首選網路模式：僅使用 NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"首選網路模式：NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"首選網路模式：NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"首選網路模式：NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"首選網路模式：NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"首選網路模式：NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"首選網路模式：NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"首選網路模式：NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"首選網路模式：NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"首選網路模式：NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"首選網路模式：NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"通話"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"網路"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"加強型 4G LTE 模式"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"多類別資訊"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"已啟用多類別資訊"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"已停用多類別資訊"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (建議選項)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (建議)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (建議)"</string>
     <string name="network_global" msgid="3289646154407617631">"通用"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"正在刪除固定撥號…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"已刪除固定撥號。"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"您所輸入的 PIN 不正確，因此未更新 FDN。"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"固定撥號的號碼超過 20 位數，因此無法更新。"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"固定撥號的號碼超過 <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> 位數，因此無法更新。"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"未更新 FDN。可能是因為 PIN2 碼不正確或電話號碼遭拒。"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN 操作失敗。"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"正在從 SIM 卡讀取…"</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"無法通話。<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> 不是緊急號碼。"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"無法通話。只能撥打緊急號碼。"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"無法撥打緊急電話"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"只有裝置的擁有者才能輸入 PIN/PUK 碼。"</string>
     <string name="police_type_description" msgid="2819533883972081757">"警察局"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"救護車"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"火警"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"即時文字訊息 (RTT) 通話"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"允許在進行語音通話時傳送訊息"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"即時文字訊息功能可為以下類型的來電者提供協助：聽障人士、聽力受損者、語言障礙者，或需要語音服務以外的使用者。&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;瞭解詳情&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - 系統會以訊息轉錄的方式儲存即時文字訊息通話內容\n       &lt;br&gt; - 視訊通話不支援即時文字訊息功能"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"注意：漫遊時無法使用即時文字訊息功能"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"關閉 TTY"</item>
     <item msgid="1449091874731375214">"TTY 完整功能"</item>
@@ -611,6 +639,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"是"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"否"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"關閉"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"手機目前處於緊急回撥模式"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"結束時間：<xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">接下來的 <xliff:g id="COUNT_1">%s</xliff:g> 分鐘內，手機將處於緊急回撥模式。\n要立即退出這個模式嗎？</item>
+      <item quantity="one">接下來的 <xliff:g id="COUNT_0">%s</xliff:g> 分鐘內，手機將處於緊急回撥模式。\n要立即退出這個模式嗎？</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"服務"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"設定"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;未設定&gt;"</string>
@@ -750,7 +784,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"已停用通話限制設定"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"變更密碼"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"變更通話限制密碼"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"無法變更通話限制密碼。"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"無法變更通話限制密碼"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"密碼不符"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"輸入 4 位數密碼"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"密碼已變更"</string>
@@ -759,7 +793,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"確認密碼"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"輸入密碼"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"通話限制設定"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"要停用所有通話限制設定嗎？"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"目前忙線中，請稍後再撥號。"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"目前網路壅塞，請與你的行動電信業者聯絡以尋求協助。"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"通話已自動轉接。"</string>
@@ -789,4 +822,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"如要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>，請確認 SIM 卡 <xliff:g id="SIM_NUMBER">%2$d</xliff:g> 的行動數據功能已開啟。你可以前往行動網路設定進行變更。"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"如要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>，請確認 SIM 卡 <xliff:g id="SIM_NUMBER">%2$d</xliff:g> 的行動數據功能和漫遊服務已開啟。你可以前往行動網路設定進行變更。"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"關閉"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"啟用數據連線"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"停用數據連線"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"已佈建 VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"已建立視訊通話"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"已建立 Wi-Fi 通話"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/顯示狀態：已啟用"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS 資料"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"啟用 DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"要重新啟動裝置嗎？"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"你必須重新啟動裝置，才能變更這項設定。"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"重新啟動"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"取消"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"行動無線電電源"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"查看 SIM 通訊錄"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"查看固定撥號"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"查看服務撥號號碼"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS 服務狀態"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS 狀態"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"已註冊"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"未註冊"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"可供使用"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"無法使用"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS 註冊狀態：<xliff:g id="STATUS">%1$s</xliff:g>\nVoLTE：<xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoWi-Fi：<xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\n視訊通話：<xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT 介面：<xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"服務中"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"無服務"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"僅可撥打緊急電話"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"關閉無線電"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"漫遊"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"未使用漫遊服務"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"閒置"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"鈴響中"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"通話中"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"已中斷連線"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"連線中"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"已連線"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"待命"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"不明"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"位元組"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"客戶 ID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"目前的子 ID："</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"預設資料 SIM 卡的子 ID："</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"下行頻寬 (kbps)："</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"上行頻寬 (kbps)："</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"行動網路位置資訊 (已不適用)："</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE 實體通道設定："</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"行動網路資訊重新整理頻率："</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"所有行動網路測量資訊："</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"數據服務："</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"漫遊："</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI："</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"來電轉接："</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"啟動後重設 PPP 的次數："</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"目前的網路："</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"已接收的數據："</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"語音服務："</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"訊號強度："</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"語音通話狀態："</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"已傳送的數據："</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"留言待取："</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"電話號碼："</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"選取無線電頻帶"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"語音網路類型："</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"數據網路類型："</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"選取電話索引"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"設定偏好的網路類型："</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"連線偵測 (ping) 主機名稱 (www.google.com) IPv4："</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"連線偵測 (ping) 主機名稱 (www.google.com) IPv6："</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP 用戶端測試："</string>
+    <string name="ping_test_label" msgid="448617502935719694">"執行連線偵測 (ping) 測試"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC："</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"更新"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"重新整理"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"切換 DNS 檢查"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"原始設備製造商 (OEM) 專用資訊/設定"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"設定無線電頻帶模式"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"正在載入頻帶清單…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"設定"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"失敗"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"成功"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"平板電腦資訊"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"手機資訊"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"電信業者佈建資訊"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"觸發電信業者佈建程序"</string>
 </resources>
diff --git a/res/values-zu/config.xml b/res/values-zu/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-zu/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 7655309..77096f3 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Inombolo eyimfihlo"</string>
     <string name="payphone" msgid="7936735771836716941">"Ucingo olufakwa imali"</string>
     <string name="onHold" msgid="6132725550015899006">"Ibambile"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Umlayezo"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Umlayezo wenkampani yenethiwekhi"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Ikhodi ye-MMI iqalile"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Ikhodi ye-USSD iyasebenza..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Ikhodi ye-MMI ikhanseliwe"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"I-LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"I-TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"I-LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"I-NR kuphela"</item>
+    <item msgid="2935877729588775187">"I-NR/LTE"</item>
+    <item msgid="8967513231424970529">"I-NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"I-NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"I-NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"I-NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"I-NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"I-NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"I-NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"I-NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"I-NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Imodi yenethiwekhi ekhethwayo: i-WCDMA ekhethwayo"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Imodi yenethiwekhi ekhethwayo: i-GSM kuphela"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Imodi yenethiwekhi ekhethwayo: i-LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Imodi yenethiwekhi ekhethwayo: i-GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Imodi yenethiwekhi ekhethwayo: i-CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Imodi yenethiwekhi encanyelwayo: I-LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Imodi yenethiwekhi ekhethwayo: Umhlaba jikelele"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Imodi yenethiwekhi ekhethwayo: i-LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Imodi yenethiwekhi encanyelwayo: i-LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Imodi yenethiwekhi ekhethwayo: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Imodi yenethiwekhi ekhethwayo: i-CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Imodi yenethiwekhi ekhethwayo: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Imodi yenethiwekhi encanyelwayo: I-NR kuphela"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Imodi yenethiwekhi encanyelwayo: I-NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Iyashaya"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Inethiwekhi"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Imodi ye-4G LTE ethuthukisiwe"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Izigaba-ningi"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Izigaba-ningi zivunyelwe"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Izigaba-ningi zivimbelwe"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (kunconyiwe)"</string>
     <string name="network_lte" msgid="7206879277095094280">"I-LTE (inconyiwe)"</string>
     <string name="network_4G" msgid="6800527815504223913">"I-4G (inconyiwe)"</string>
     <string name="network_global" msgid="3289646154407617631">"Emhlabeni jikelele"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Isusa othintana naye wokudayela okungaguquki..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Othintana naye wokudayela okungaguquki ususiwe"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"I-FDN ayivuselelwanga ngoba uthayiphe i-PIN engalungile."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"I-FDN ayizange ibuyekezwe ngoba inombolo yeza amadijithi angu-20."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"I-FDN ayizange ibuyekezwe ngoba inombolo idlula amadijithi angu-<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"I-FDN ayibuyekeziwe. I-PIN2 kade ingalungile, noma inombolo yefoni yenqatshelwe."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Umsebenzi we-FDN wehlulekile."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Ifunda ekhadini le-SIM..."</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Ayikwazi ukushaya. I-<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> akuyona inombolo yesimo esiphuthumayo."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Ayikwazi ukushaya. Shayela inombolo yesimo esiphuthumayo."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Ukushaya okuphuthumayo akutholakali"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Umnikazi wedivayisi kuphela ongafaka amakhodi EPHINIKHODI/I-PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Amaphoyisa"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"I-Ambulensi"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Umlilo"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Ikholi yombhalo wesikhathi sangempela (i-RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Vumela ukuthumela imilayezo ngaphakathi kwekholi yezwi"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"I-RTT isiza abafonayo abangezwa ezindlebeni, abenzwa kanzima, abanokukhubazeka kwenkulumo, noma udinga ngaphezulu kwezwi kuphela.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Funda kabanzi&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Amakholi e-RTT alondolozwa njengokubhala ngokuloba ngomlayezo\n       &lt;br&gt; - I-RTT ayitholakali kumakholi evidiyo"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Qaphela: I-RTT ayitholakali ngenkathi uzula"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"I-TTY Ivaliwe"</item>
     <item msgid="1449091874731375214">"I-TTY Igcwele"</item>
@@ -611,6 +639,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yebo"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Cha"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Susa"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Ifoni ikumodi yokushaya okuphuthumayo"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Kuze kube ngu-<xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Ifoni izoba kumodi yokushaya kwesimo esiphuthumayo amaminithi angu-<xliff:g id="COUNT_1">%s</xliff:g>.\nIngabe ufuna ukuphuma manje?</item>
+      <item quantity="other">Ifoni izoba kumodi yokushaya kwesimo esiphuthumayo amaminithi angu-<xliff:g id="COUNT_1">%s</xliff:g>.\nIngabe ufuna ukuphuma manje?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Isevisi"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Ukumisa"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ayisethiwe&gt;"</string>
@@ -750,7 +784,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Ukuvimbela ikholi kuyekiswe ukusebenza"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Shintsha iphasiwedi"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Shintsha iphasiwedi yokuvimbela"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Ayikwazi ukushintsha iphasiwedi yokuvimbela."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Ayikwazi ukushintsha iphasiwedi yokuvimbela ikholi"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Amaphasiwedi awafani"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Faka iphaiswedi enezinombolo ezingu-4"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Iphasiwedi ishintshiwe"</string>
@@ -759,7 +793,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Qinisekisa iphasiwedi"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Faka iphasiwedi"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Izilungiselelo zokuvimbela ikholi"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Yeka ukusebenzisa zonke izilungiselelo zokuvimbela?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Inethiwekhi imatasa. Sicela uzame ikholi yakho futhi ngemuva kwesikhathi."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Inethiwekhi iminyene. Xhumana ne-opharetha yakho yeselula ukuze uthole usizo."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Ikholi yehlisiwe."</string>
@@ -789,4 +822,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Ukuze usebenzise i-<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, qiniseka ukuthi idatha yeselula ivuliwe ku-SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Ungashintsha lokhu kuzilungiselelo zenethiwekhi yeselula."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Ukuze usebenzise i-<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, qiniseka ukuthi idatha yeselula kanye nokuzula kuvuliwe ku-SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Ungashintsha lokhu kuzilungiselelo zenethiwekhi yeselula."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Chitha"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Vumela uxhumano lwedatha"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Khubaza uxhumano lwedatha"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Okunikeziwe kwe-VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Kugunyazwe ukushaya kwevidiyo"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Kugunyazwe ukushaya kwe-Wifi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"I-EAB/Ukuba khona kunikezelwe"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Idatha ye-Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Nika amandla i-DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Qalisa kabusha idivayisi?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Udinga ukuqalisa kabusha idivayisi yakho ukushintsha lesi silungiselelo."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Qala kabusha"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Khansela"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Amandla erediyo yeselula"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Buka incwadi yekheli le-SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Buka Izinombolo Zokudayela Okungaguquki"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Buka Izinombolo Zokudayela Isevisi"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Isimo sesevisi ye-IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Isimo se-IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Kubhalisiwe"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Akubhalisiwe"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Iyatholakala"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Akutholakali"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Ukubhalisa kwe-IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nI-Voice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nI-Voice over WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nUkushaya kwevidiyo: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT isixhumi esibonakalayo: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Kwisevisi"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ayikho isevisi"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Amakholi aphuthumayo kuphela"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Irediyo ivaliwe"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Iyazulazula"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ayizulazuli"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Okungenzi lutho"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Iyakhala"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Ikholi iyaqhubeka"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Inqamukile"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Iyaxhumeka"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Ixhunyiwe"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Kumiswe okwesikhashana"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Akwaziwa"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"amaphakethe"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"amabhaythi"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"I-subId yamanje:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"I-SubId ye-SIM yedatha yokuzenzakalela:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Umkhawulokudonsa we-DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Umkhawulokudonsa we-UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Ulwazi lwendawo lweseli (kwehlisiwe):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Ukulungiselelwa okuphathekayo kwesiteshi se-LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Isilinganiso sokuqalisa kabusha solwazi lweseli:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Ulwazi lwesilinganiso seseli:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Isevisi yedatha:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Ukuzulazula:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Ukuqondisa kabusha ikholi:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Inani lokuhlelwa kabusha kwe-PPP ngenkathi igcina ukuqala"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Inethiwekhi yamanje:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Idatha Etholiwe:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Isevisi yezwi:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Amandla esiginali:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Isimo sekholi yezwi:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Idatha ithunyelwe:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Umlayezo ulindile:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Inombolo yefoni:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Khetha ibhendi yerediyo"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Uhlobo lwenethiwekhi yezwi:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Uhlobo lwenethiwekhi yedatha:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Khetha inkomba yefoni"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Setha uhlobo lwenethiwekhi olufisekayo:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Qhweba i-Hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Qhweba i-Hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Ukuhlola ikhasimende ye-HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Yenza ukuhlola kokuntwiza"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Buyekeza"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Vuselela"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Guqula ukuhlola i-DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Ulwazi oucacile kwe-OEM/Izilungiselelo"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Isetha imodi yebhendi yerediyo"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Ilayisha uhlu lwebhendi…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Setha"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Akuphumelelanga"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Kuphumelele"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Ulwazi lethebhulethi"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Ulwazi lwefoni"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Ulwazi lokuhlinzeka lenkampani yenethiwekhi"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Cupha ukunikezwa kwenkampani yenethiwekhi"</string>
 </resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index b697ed8..2db3aa0 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -44,7 +44,7 @@
     <!-- Dark variant of the action bar color.  Ensure this stays in sync with Dialer version. -->
     <color name="actionbar_background_color_dark">#ffffff</color>
     <!-- Color for icons in the actionbar. Ensure this stays in sync with Dialer version. -->
-    <color name="actionbar_icon_color">#ffffff</color>
+    <color name="actionbar_icon_color">#5f6368</color>
 
     <!-- Color for the setting text. -->
     <color name="setting_primary_color">#333333</color>
diff --git a/res/values/config.xml b/res/values/config.xml
index 8bc1919..2f0fcc6 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -209,7 +209,7 @@
 
     <!-- The package to handle visual voicemail if the default dialer or the package
     CarrierConfigManager.KEY_CARRIER_VVM_PACKAGE_NAME_STRING does not handle it -->
-    <string name="system_visual_voicemail_client"></string>
+    <string name="system_visual_voicemail_client" translatable="false"/>
 
     <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
     <bool name="vvm3_enabled">false</bool>
@@ -235,6 +235,12 @@
     <!-- Flag indicating whether the device supports RTT (real-time text) -->
     <bool name="config_support_rtt">false</bool>
 
+    <!-- String indicating the package name of the device ImsService implementation for MMTEL. -->
+    <string name="config_ims_mmtel_package" translatable="false"/>
+
+    <!-- String indicating the package name of the device ImsService implementation for RCS. -->
+    <string name="config_ims_rcs_package" translatable="false"/>
+
     <!-- The package name for the platform number verification supplier app. -->
     <string name="platform_number_verification_package" translatable="false"></string>
 
@@ -251,6 +257,24 @@
          audio stream which the remote party will be able to hear. -->
     <bool name="config_support_telephony_audio_device">false</bool>
 
+    <!-- Whether the device supports dialing emergency RTT calls when there's no SIM card installed
+    -->
+    <bool name="config_support_simless_emergency_rtt">false</bool>
+
+    <!-- Array of countries that support sim-less emergency RTT calls. Values should be
+         ISO3166 country codes in lowercase. -->
+    <string-array name="config_simless_emergency_rtt_supported_countries" translatable="false">
+        <item>us</item>
+    </string-array>
+
+    <string-array translatable="false" name="config_volte_provision_error_on_publish_response">
+        <item>403 not authorized for presence</item>
+    </string-array>
+
+    <string-array translatable="false" name="config_rcs_provision_error_on_publish_response">
+        <item>404 not found</item>
+    </string-array>
+
     <!-- The country list that shortcut view can be enabled. -->
     <string-array name="config_countries_to_enable_shortcut_view" translatable="false">
     </string-array>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index f365139..1e44c72 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -42,6 +42,10 @@
     <string name="payphone">Payphone</string>
     <!-- In-call screen: status label for a call that's on hold -->
     <string name="onHold">On hold</string>
+    <!-- Title for carrier MMI message -->
+    <string name="carrier_mmi_msg_title"><xliff:g id="mmicarrier" example="T-Mobile">%s</xliff:g> Message</string>
+    <!-- Default title for carrier MMI message -->
+    <string name="default_carrier_mmi_msg_title">Carrier Message</string>
     <!-- Possible error messages with outgoing calls --><skip/>
     <string name="mmiStarted">MMI code started</string>
     <!-- Dialog label when a USSD code starts running -->
@@ -434,6 +438,17 @@
         <item>LTE/TDSCDMA/GSM/WCDMA</item>
         <item>TDSCDMA/CDMA/EVDO/GSM/WCDMA </item>
         <item>LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA</item>
+        <item>NR only</item>
+        <item>NR/LTE</item>
+        <item>NR/LTE/CDMA/EvDo</item>
+        <item>NR/LTE/GSM/WCDMA</item>
+        <item>NR/LTE/CDMA/EvDo/GSM/WCDMA</item>
+        <item>NR/LTE/WCDMA</item>
+        <item>NR/LTE/TDSCDMA</item>
+        <item>NR/LTE/TDSCDMA/GSM</item>
+        <item>NR/LTE/TDSCDMA/WCDMA</item>
+        <item>NR/LTE/TDSCDMA/GSM/WCDMA</item>
+        <item>NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA</item>
     </string-array>
     <!-- The preferred network modes RIL constants, in order of the modes above,
          e.g. the choice "GSM/WCDMA preferred" has the corresponding value "0" -->
@@ -461,6 +476,17 @@
         <item>"20"</item>
         <item>"21"</item>
         <item>"22"</item>
+        <item>"23"</item>
+        <item>"24"</item>
+        <item>"25"</item>
+        <item>"26"</item>
+        <item>"27"</item>
+        <item>"28"</item>
+        <item>"29"</item>
+        <item>"30"</item>
+        <item>"31"</item>
+        <item>"32"</item>
+        <item>"33"</item>
     </string-array>
 
     <!-- The following strings are summaries for preferred network modes in Mobile network settings,
@@ -489,6 +515,8 @@
     <string name="preferred_network_mode_lte_gsm_wcdma_summary">Preferred network mode: GSM/WCDMA/LTE</string>
     <!-- CDMA+LTE/EVDO -->
     <string name="preferred_network_mode_lte_cdma_evdo_summary">Preferred network mode: CDMA+LTE/EVDO</string>
+    <!-- LTE/CDMA/EvDo/GSM/WCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary">Preferred network mode: LTE/CDMA/EvDo/GSM/WCDMA</string>
     <!-- Global -->
     <string name="preferred_network_mode_global_summary">Preferred network mode: Global</string>
     <!-- LTE / WCDMA -->
@@ -517,6 +545,28 @@
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary">Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA</string>
     <!-- LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA -->
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary">Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA</string>
+    <!-- NR only [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_only_summary">Preferred network mode: NR only</string>
+    <!-- NR / LTE [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_summary">Preferred network mode: NR / LTE</string>
+    <!-- NR/LTE/CDMA/EvDo [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary">Preferred network mode: NR/LTE/CDMA/EvDo</string>
+    <!-- NR/LTE/GSM/WCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary">Preferred network mode: NR/LTE/GSM/WCDMA</string>
+    <!-- NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary">Preferred network mode: NR/LTE/CDMA/EvDo/GSM/WCDMA</string>
+    <!-- NR/LTE/WCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_wcdma_summary">Preferred network mode: NR/LTE/WCDMA</string>
+    <!-- NR/LTE/TDSCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary">Preferred network mode: NR/LTE/TDSCDMA</string>
+    <!-- NR/LTE/TDSCDMA/GSM [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary">Preferred network mode: NR/LTE/TDSCDMA/GSM</string>
+    <!-- NR/LTE/TDSCDMA/WCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary">Preferred network mode: NR/LTE/TDSCDMA/WCDMA</string>
+    <!-- NR/LTE/TDSCDMA/GSM/WCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary">Preferred network mode: NR/LTE/TDSCDMA/GSM/WCDMA</string>
+    <!-- NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary">Preferred network mode: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA</string>
 
     <!-- Mobile network settings screen, name for call settings category -->
     <string name="call_category">Calling</string>
@@ -753,6 +803,10 @@
     <string name="multi_category_enable">Multi-category enabled</string>
     <string name="multi_category_disable">Multi-category disabled</string>
 
+    <string name="network_recommended">\u0020(recommended)</string>
+    <string name="network_5G" translatable="false">5G</string>
+    <string name="network_lte_pure" translatable="false">LTE</string>
+    <string name="network_4G_pure" translatable="false">4G</string>
     <string name="network_lte">LTE (recommended)</string>
     <string name="network_4G">4G (recommended)</string>
     <string name="network_3G" translatable="false">3G</string>
@@ -973,7 +1027,7 @@
     <!-- 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 exceeds 20 digits.</string>
+    <string name="fdn_invalid_number">FDN wasn\'t updated because the number exceeds <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> 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
@@ -1192,6 +1246,9 @@
          emergency calling is not currently available. -->
     <string name="dial_emergency_calling_not_available">Emergency calling not available</string>
 
+    <!-- Only handle pin entry when phone user is system-->
+    <string name="pin_puk_system_user_only">Only the owner of the device can enter PIN/PUK codes.</string>
+
     <!-- Text for description of police calling type -->
     <string name="police_type_description">Police</string>
     <!-- Text for description of ambulance calling type -->
@@ -1263,6 +1320,8 @@
        &lt;br>&lt;br> - RTT calls are saved as a message transcript
        &lt;br> - RTT is not available for video calls</string>
 
+    <string name="no_rtt_when_roaming">Note: RTT is not available while roaming</string>
+
     <!-- Service option entries.  -->
     <string-array name="tty_mode_entries">
         <item>TTY Off</item>
@@ -1388,6 +1447,17 @@
     <string name="alert_dialog_no">No</string>
     <!-- ECM: ECM exit dialog choice -->
     <string name="alert_dialog_dismiss">Dismiss</string>
+    <!-- ECM: Notification body wihout data restriction hint -->
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint">The phone is in emergency callback mode</string>
+    <!-- ECM: Displays the time when ECM will end without data restriction hint, Example: "Until 10:45 AM" -->
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint">Until <xliff:g id="completeTime">%s</xliff:g></string>
+    <!-- ECM: Dialog box message without data restriction hint for exiting from the notifications screen -->
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint">
+        <!-- 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.\nDo 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.\nDo you want to exit now?</item>
+    </plurals>
 
     <!-- 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. -->
@@ -1767,7 +1837,7 @@
     <!-- Call barring settings screen, change password -->
     <string name="call_barring_change_pwd_description">Change call barring password</string>
     <!-- Call barring settings screen, not possible to change call barring password -->
-    <string name="call_barring_change_pwd_description_disabled">Cannot change call barring password.</string>
+    <string name="call_barring_change_pwd_description_disabled">Cannot change call barring password</string>
     <!-- Call barring settings screen, change password -->
     <string name="call_barring_pwd_not_match">Passwords do not match</string>
     <!-- Call barring settings screen, change password -->
@@ -1784,8 +1854,6 @@
     <string name="messageCallBarring">Enter password</string>
     <!-- Call barring settings screen, section heading -->
     <string name="call_barring_settings">Call barring settings</string>
-    <!-- Call barring settings screen, deactivate all call barring settings -->
-    <string name="call_barring_deactivate_all_no_password">Deactivate all call barring settings?</string>
     <!-- In-call screen: error message shown when the user attempts to place a call, but the network
          does not have enough resources (e.g. it is busy) and the call cannot be placed. -->
     <string name="callFailed_NetworkBusy">Network is busy.  Please try your call again later.</string>
@@ -1881,4 +1949,209 @@
     <string name="supp_service_over_ut_precautions_roaming_dual_sim">To use <xliff:g id="supp service">%1$s</xliff:g>, make sure mobile data and data roaming are turned on for SIM <xliff:g id="sim number">%2$d</xliff:g>. You can change these in mobile network settings.</string>
     <!-- supplementary services over ut precaution exit dialog choice -->
     <string name="supp_service_over_ut_precautions_dialog_dismiss">Dismiss</string>
+
+    <!-- Data Connection Enable. Only shown in diagnostic screen, so precise translation is not needed. -->
+    <string name="radio_info_data_connection_enable">Enable Data Connection</string>
+    <!-- Data Connection Disable. Only shown in diagnostic screen, so precise translation is not needed. -->
+    <string name="radio_info_data_connection_disable">Disable Data Connection</string>
+
+    <!-- VoLTE provisioning flag on. Only shown in diagnostic screen, so precise translation is not needed. -->
+    <string name="volte_provisioned_switch_string">VoLTE Provisioned</string>
+
+    <!-- Video calling provisioning flag on. Only shown in diagnostic screen, so precise translation is not needed. -->
+    <string name="vt_provisioned_switch_string">Video Calling Provisioned</string>
+
+    <!-- Wifi Calling provisioning flag on. Only shown in diagnostic screen, so precise translation is not needed. -->
+    <string name="wfc_provisioned_switch_string">Wifi Calling Provisioned</string>
+
+    <!-- EAB provisioning flag on. Only shown in diagnostic screen, so precise translation is not needed. -->
+    <string name="eab_provisioned_switch_string">EAB/Presence Provisioned</string>
+
+    <!-- Cbrs enable disable flag. Only shown in diagnostic screen, so precise translation is not needed -->
+    <string name="cbrs_data_switch_string">Cbrs Data</string>
+
+    <!-- Dsds enable/disable flag. Only shown in diagnostic screen, so precise translation is not needed, [CHAR LIMIT=none] -->
+    <string name="dsds_switch_string">Enable DSDS</string>
+
+    <!-- UI debug setting: Enable/Disable DSDS [CHAR LIMIT=none] -->
+    <string name="dsds_dialog_title">Restart Device?</string>
+
+    <!-- UI debug setting: Enable/Disable DSDS [CHAR LIMIT=none] -->
+    <string name="dsds_dialog_message">You need to restart your device to change this setting.</string>
+
+    <!-- UI debug setting: Enable/Disable DSDS [CHAR LIMIT=none] -->
+    <string name="dsds_dialog_confirm">Restart</string>
+
+    <!-- UI debug setting: Enable/Disable DSDS [CHAR LIMIT=none] -->
+    <string name="dsds_dialog_cancel">Cancel</string>
+
+    <!-- Title for controlling on/off for Mobile phone's radio power. Only shown in diagnostic screen, so precise translation is not needed. -->
+    <string name="radio_info_radio_power">Mobile Radio Power</string>
+
+    <!-- Phone Info screen. Menu item label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_menu_viewADN">View SIM Address Book</string>
+    <!-- Phone Info screen. Menu item label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_menu_viewFDN">View Fixed Dialing Numbers</string>
+    <!-- Phone Info screen. Menu item label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_menu_viewSDN">View Service Dialing Numbers</string>
+    <!-- Phone Info screen. Menu item label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_menu_getIMS">IMS Service Status</string>
+
+    <!-- Phone Info screen. IMS Registration Title.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ims_reg_status_title">IMS Status</string>
+
+    <!-- Phone Info screen. IMS Status - Registered.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ims_reg_status_registered">Registered</string>
+    <!-- Phone Info screen. Ims Status - Unregistered.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ims_reg_status_not_registered">Not Registered</string>
+
+    <!-- Phone Info screen. Ims Feature Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ims_feature_status_available">Available</string>
+    <!-- Phone Info screen. Ims Feature status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ims_feature_status_unavailable">Unavailable</string>
+
+    <!-- Phone Info screen. IMS Registration.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ims_reg_status">IMS Registration: <xliff:g id="status" example="registered">%1$s</xliff:g>\u000AVoice over LTE: <xliff:g id="availability" example="available">%2$s</xliff:g>\u000AVoice over WiFi: <xliff:g id="availability" example="available">%3$s</xliff:g>\u000AVideo Calling: <xliff:g id="availability" example="available">%4$s</xliff:g>\u000AUT Interface: <xliff:g id="availability" example="available">%5$s</xliff:g></string>
+
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_service_in">In Service</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_service_out">Out of Service</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_service_emergency">Emergency Calls Only</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_service_off">Radio Off</string>
+
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_roaming_in">Roaming</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_roaming_not">Not Roaming</string>
+
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_phone_idle">Idle</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_phone_ringing">Ringing</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_phone_offhook">Call in Progress</string>
+
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_data_disconnected">Disconnected</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_data_connecting">Connecting</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_data_connected">Connected</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_data_suspended">Suspended</string>
+
+    <!-- Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_unknown">Unknown</string>
+    <!-- Phone Info screen. Units shown after a value.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_display_packets">pkts</string>
+    <!-- Phone Info screen. Units shown after a value.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_display_bytes">bytes</string>
+    <!-- Phone Info screen. Units shown after a value.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_display_dbm">dBm</string>
+    <!-- Phone Info screen. Units shown after a value.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_display_asu">asu</string>
+    <!-- Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_lac">LAC</string>
+    <!-- Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_cid">CID</string>
+
+
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_subid">Current subId:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_dds">SubId of default data SIM:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_dl_kbps">DL Bandwidth (kbps):</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ul_kbps">UL Bandwidth (kbps):</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_signal_location_label">Cell Location Info (deprecated):</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_phy_chan_config">LTE Physical Channel Configuration:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_cell_info_refresh_rate">Cell Info Refresh Rate:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_cellinfo_label">All Cell Measurement Info:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_gprs_service_label">Data Service:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_roaming_label">Roaming:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_imei_label">IMEI:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, DO NOT TRANSLATE. -->
+    <string name="radio_info_imsi_label">IMSI:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_call_redirect_label">Call Redirect:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ppp_resets_label">Number of PPP Reset Since Boot:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_current_network_label">Current Network:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ppp_received_label">Data Received:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_gsm_service_label">Voice Service:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_signal_strength_label">Signal Strength:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_call_status_label">Voice Call Status:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ppp_sent_label">Data Sent:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_message_waiting_label">Message Waiting:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_phone_number_label">Phone Number:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_band_mode_label">Select Radio Band</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_voice_network_type_label">Voice Network Type:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_data_network_type_label">Data Network Type:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="phone_index_label">Select phone index</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_set_perferred_label">Set Preferred Network Type:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ping_hostname_v4">Ping Hostname(www.google.com) IPv4:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ping_hostname_v6">Ping Hostname(www.google.com) IPv6:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_http_client_test">HTTP Client Test:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="ping_test_label">Run Ping Test</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_smsc_label">SMSC:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_smsc_update_label">Update</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_smsc_refresh_label">Refresh</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_toggle_dns_check_label">Toggle DNS Check</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="oem_radio_info_label">OEM-specific Info/Settings</string>
+
+    <!-- Band Mode Selection -->
+    <!-- Band mode screen.  Title of activity. -->
+    <string name="band_mode_title">Set Radio Band Mode</string>
+    <!-- Band mode screen.  Loading message. -->
+    <string name="band_mode_loading">Loading Band List\u2026</string>
+    <!-- Band mode screen. Button caption to set the bandmode. -->
+    <string name="band_mode_set">Set</string>
+    <!-- Band mode screen. Status message when unsuccessful. -->
+    <string name="band_mode_failed">Unsuccessful</string>
+    <!-- Band mode screen. Statusm essage when successful. -->
+    <string name="band_mode_succeeded">Successful</string>
+
+    <!-- The title of the activity to see phone info -->
+    <string name="phone_info_label" product="tablet">Tablet info</string>
+    <!-- The title of the activity to see phone info -->
+    <string name="phone_info_label" product="default">Phone info</string>
+
+    <!-- Carrier Provisioning Info [CHAR LIMIT=NONE] -->
+    <string name="carrier_provisioning">Carrier Provisioning Info</string>
+    <!-- Trigger Carrier Provisioning [CHAR LIMIT=NONE] -->
+    <string name="trigger_carrier_provisioning">Trigger Carrier Provisioning</string>
+
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index c791968..e8a0bed 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -45,6 +45,23 @@
         <item name="android:layout_height">wrap_content</item>
     </style>
 
+    <style name="RadioInfo_entry_layout">
+        <item name="android:orientation">horizontal</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+    </style>
+
+    <style name="info_value">
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:textAppearance">@style/TextAppearance.info_value</item>
+    </style>
+
+    <style name="form_value">
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_width">match_parent</item>
+    </style>
+
     <style name="TextAppearance" parent="android:TextAppearance">
     </style>
 
@@ -53,6 +70,11 @@
         <item name="android:textStyle">bold</item>
     </style>
 
+    <style name="TextAppearance.info_value">
+        <item name="android:textSize">14sp</item>
+        <item name="android:textStyle">normal</item>
+    </style>
+
     <!-- Preference Style for the phone number preferences -->
     <style name="EditPhoneNumberPreference">
         <item name="enableButtonText">@string/enable</item>
@@ -170,7 +192,6 @@
 
     <style name="DialerSettingsLight" parent="SettingsLight">
         <!-- Action bar.-->
-        <item name="android:tint">@color/dialer_secondary_text_color</item>
         <item name="android:windowBackground">@color/dialer_background_color</item>
         <item name="android:actionModeBackground">@color/dialer_background_color</item>
         <item name="android:windowLightStatusBar">true</item>
@@ -180,6 +201,7 @@
         <item name="android:windowLightNavigationBar">true</item>
         <item name="android:colorAccent">@color/dialer_theme_color</item>
         <item name="android:dialogTheme">@style/DialerAlertDialogTheme</item>
+        <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
     </style>
 
     <style name="DialerAlertDialogTheme"
@@ -189,21 +211,6 @@
         <item name="android:textColor">?android:attr/textColorPrimaryInverseDisableOnly</item>
     </style>
 
-    <style name="NetworkOperatorsSettingsTheme" parent="@android:style/Theme.DeviceDefault.Settings">
-        <item name="android:forceDarkAllowed">true</item>
-        <item name="android:switchPreferenceStyle">@style/SettingsSwitchPreference</item>
-        <item name="android:preferenceCategoryStyle">@style/SettingsPreferenceCategory</item>
-        <item name="android:preferenceStyle">@style/SettingsPreference</item>
-        <item name="android:dialogPreferenceStyle">@style/SettingsDialogPreference</item>
-        <item name="android:preferenceScreenStyle">@style/SettingsPreferenceScreen</item>
-    </style>
-
-    <style name="TrimmedHorizontalProgressBar" parent="android:Widget.Material.ProgressBar.Horizontal">
-        <item name="android:indeterminateDrawable">@drawable/progress_indeterminate_horizontal_material_trimmed</item>
-        <item name="android:minHeight">3dip</item>
-        <item name="android:maxHeight">3dip</item>
-    </style>
-
     <style name="Empty" parent="@android:style/Theme.Material.Light">
         <item name="android:forceDarkAllowed">true</item>
         <item name="android:windowIsTranslucent">true</item>
@@ -214,33 +221,6 @@
         <item name="android:backgroundDimEnabled">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>
-
     <!-- Style for the call settings action bar.  Should be kept in sync with Dialer. -->
     <style name="DialtactsActionBarStyle" parent="@style/TelephonyActionBarStyle">
         <!-- Shift the title text to the right -->
@@ -271,7 +251,7 @@
         <item name="android:src">@drawable/overflow_menu</item>
     </style>
 
-    <style name="EmergencyDialerTheme" parent="@*android:style/Theme.DeviceDefault.Settings.Dark.NoActionBar">
+    <style name="EmergencyDialerTheme" parent="@android:style/Theme.Material.NoActionBar">
         <item name="android:forceDarkAllowed">true</item>
         <item name="android:colorPrimaryDark">?android:attr/colorPrimary</item>
         <item name="android:colorBackgroundCacheHint">@null</item>
@@ -280,7 +260,7 @@
         <item name="android:navigationBarColor">@android:color/transparent</item>
         <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
         <item name="emergencyButtonBackgroundColor">#3cffffff</item>
-        <item name="dialpadTheme">@style/Dialpad_DarkTransparent</item>
+        <item name="dialpadTheme">@style/Dialpad_DarkTransparent.Emergency</item>
     </style>
 
     <style name="EmergencyDialerThemeDark" parent="@style/EmergencyDialerTheme">
@@ -288,7 +268,15 @@
         <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
         <item name="emergencyButtonBackgroundColor">#19414549</item>
         <item name="android:colorControlHighlight">#40000000</item>
-        <item name="dialpadTheme">@style/Dialpad_LightTransparent</item>
+        <item name="dialpadTheme">@style/Dialpad_LightTransparent.Emergency</item>
+    </style>
+
+    <style name="Dialpad_LightTransparent.Emergency">
+        <item name="dialpad_delete_padding">16dp</item>
+    </style>
+
+    <style name="Dialpad_DarkTransparent.Emergency">
+        <item name="dialpad_delete_padding">16dp</item>
     </style>
 
     <style name="EmergencyDialerAlertDialogTheme"
@@ -305,13 +293,6 @@
         <item name="android:actionOverflowButtonStyle">@style/DialtactsActionBarOverflow</item>
     </style>
 
-    <style name="OutgoingCallBroadcasterTheme" parent="@android:style/Theme.Holo.NoActionBar">
-        <item name="android:forceDarkAllowed">true</item>
-        <item name="android:windowBackground">@android:color/black</item>
-
-        <item name="*android:windowAnimationStyle">@style/OutgoingAnimationStyle</item>
-    </style>
-
     <style name="DialtactsDigitsTextAppearance">
         <item name="android:maxLines">1</item>
         <item name="android:textSize">@dimen/dialpad_digits_text_size</item>
@@ -330,48 +311,47 @@
         <item name="android:backgroundDimEnabled">false</item>
     </style>
 
-    <style name="CallSettingsWithoutDividerTheme" parent="SettingsLight">
-        <item name="android:forceDarkAllowed">true</item>
+    <style name="CallSettingsWithoutDividerTheme" parent="DialerSettingsLight">
         <item name="android:listDivider">@null</item>
     </style>
 
-    <style name="EmergencyInfoNameTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
-        <item name="android:textColor">@*android:color/primary_text_default_material_dark</item>
+    <style name="EmergencyInfoNameTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
+        <item name="android:textColor">@color/primary_text_default_material_dark</item>
         <item name="android:textSize">@dimen/emergency_info_name_text_size</item>
     </style>
 
-    <style name="EmergencyInfoHintTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
-        <item name="android:textColor">@*android:color/secondary_text_default_material_dark</item>
+    <style name="EmergencyInfoHintTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
+        <item name="android:textColor">@color/secondary_text_default_material_dark</item>
         <item name="android:textSize">@dimen/emergency_info_hint_text_size</item>
     </style>
 
-    <style name="EmergencyInfoTapHintTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="EmergencyInfoTapHintTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@android:color/white</item>
         <item name="android:textSize">@dimen/emergency_info_tap_hint_text_size</item>
     </style>
 
-    <style name="ShortcutViewHintTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
-        <item name="android:textColor">@*android:color/secondary_text_default_material_dark</item>
+    <style name="ShortcutViewHintTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
+        <item name="android:textColor">@color/secondary_text_default_material_dark</item>
     </style>
 
-    <style name="PhoneNumberTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
-        <item name="android:textColor">@*android:color/primary_text_default_material_light</item>
+    <style name="PhoneNumberTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
+        <item name="android:textColor">@color/primary_text_default_material_light</item>
         <item name="android:textSize">@dimen/emergency_shortcut_number_text_size</item>
     </style>
 
     <style name="PhoneNumberTypeAppearance">
         <item name="android:fontFamily">roboto</item>
-        <item name="android:textColor">@*android:color/secondary_text_default_material_light</item>
+        <item name="android:textColor">@color/secondary_text_default_material_light</item>
         <item name="android:textSize">@dimen/emergency_shortcut_type_text_size</item>
     </style>
 
-    <style name="PhoneNumberTapHintAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="PhoneNumberTapHintAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@android:color/white</item>
         <item name="android:textSize">@dimen/emergency_shortcut_tap_hint_text_size</item>
     </style>
diff --git a/res/values/styles_preference.xml b/res/values/styles_preference.xml
index ceea4a6..eace2e7 100644
--- a/res/values/styles_preference.xml
+++ b/res/values/styles_preference.xml
@@ -19,26 +19,22 @@
 <!-- Things unrelated to preference framework UI customization should go to other styles files -->
 <resources>
     <!-- Preferences -->
-    <style name="SettingsPreference" parent="@*android:style/Preference.DeviceDefault">
+    <style name="SettingsPreference" parent="@style/Preference.Material">
         <item name="android:singleLineTitle">false</item>
         <item name="android:iconSpaceReserved">true</item>
     </style>
 
-    <style name="SettingsSwitchPreference" parent="@*android:style/Preference.DeviceDefault.SwitchPreference">
+    <style name="SettingsSwitchPreference" parent="@style/Preference.SwitchPreference.Material">
         <item name="android:iconSpaceReserved">true</item>
         <item name="android:singleLineTitle">false</item>
     </style>
 
-    <style name="SettingsPreferenceCategory" parent="@*android:style/Preference.DeviceDefault.Category">
-        <item name="android:layout">@layout/preference_category_material_settings_with_divider</item>
-    </style>
-
-    <style name="SettingsDialogPreference" parent="@*android:style/Preference.DeviceDefault.DialogPreference">
+    <style name="SettingsDialogPreference" parent="@style/Preference.DialogPreference.Material">
         <item name="android:singleLineTitle">false</item>
         <item name="android:iconSpaceReserved">true</item>
     </style>
 
-    <style name="SettingsPreferenceScreen" parent="@*android:style/Preference.DeviceDefault.PreferenceScreen">
+    <style name="SettingsPreferenceScreen" parent="@style/Preference.PreferenceScreen.Material">
         <item name="android:singleLineTitle">false</item>
         <item name="android:iconSpaceReserved">true</item>
     </style>
diff --git a/res/xml/callbarring_options.xml b/res/xml/callbarring_options.xml
index 6f2c48a..6506031 100644
--- a/res/xml/callbarring_options.xml
+++ b/res/xml/callbarring_options.xml
@@ -14,7 +14,7 @@
      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"
+     xmlns:phone="http://schemas.android.com/apk/res-auto"
      android:title="@string/call_barring_settings">
 
     <!-- Note for all com.android.phone.EditPinPreference objects
diff --git a/res/xml/callforward_options.xml b/res/xml/callforward_options.xml
index 0ff1e90..775151e 100644
--- a/res/xml/callforward_options.xml
+++ b/res/xml/callforward_options.xml
@@ -1,6 +1,6 @@
 <?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"
+     xmlns:phone="http://schemas.android.com/apk/res-auto"
      android:title="@string/call_forwarding_settings">
 
 
diff --git a/res/xml/cdma_options.xml b/res/xml/cdma_options.xml
deleted file mode 100644
index f6ef97a..0000000
--- a/res/xml/cdma_options.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?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">
-
-    <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" />
-
-    <!--We want separate APN setting from reset of settings because-->
-    <!--we want user to change it with caution.-->
-    <PreferenceCategory
-        android:key="category_cdma_apn_key">
-        <!-- The launching Intent will be defined thru code as we need to pass some Extra -->
-        <com.android.phone.RestrictedPreference
-            android:key="button_cdma_apn_key"
-            android:title="@string/apn_settings"
-            android:persistent="false"/>
-    </PreferenceCategory>
-
-    <Preference
-        android:key="carrier_settings_key"
-        android:title="@string/carrier_settings_title">
-        <intent android:action="android.intent.action.MAIN"
-                android:targetPackage="@string/carrier_settings"
-                android:targetClass="@string/carrier_settings_menu" />
-    </Preference>
-
-</PreferenceScreen>
diff --git a/res/xml/gsm_umts_options.xml b/res/xml/gsm_umts_options.xml
deleted file mode 100644
index 81b2deb..0000000
--- a/res/xml/gsm_umts_options.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?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">
-
-    <com.android.phone.NetworkOperators
-        android:key="network_operators_category_key"
-        android:title="@string/network_operator_category"
-        android:persistent="false">
-
-        <SwitchPreference
-            android:key="button_auto_select_key"
-            android:title="@string/select_automatically"
-            android:persistent="false"/>
-
-        <com.android.phone.NetworkSelectListPreference
-            android:key="button_network_select_key"
-            android:title="@string/network_select_title"
-            android:persistent="false"/>
-
-        <Preference
-            android:key="button_choose_network_key"
-            android:title="@string/choose_network_title"
-            android:fragment="com.android.phone.NetworkSelectSetting" />
-    </com.android.phone.NetworkOperators>
-
-    <!--We want separate APN setting from reset of settings because-->
-    <!--we want user to change it with caution.-->
-    <PreferenceCategory
-        android:key="category_gsm_apn_key"
-        android:layout="@layout/preference_category_no_label">
-
-        <com.android.phone.RestrictedPreference
-            android:key="button_gsm_apn_key"
-            android:title="@string/apn_settings"
-            android:persistent="false" />
-    </PreferenceCategory>
-
-    <PreferenceScreen
-        android:key="carrier_settings_key"
-        android:title="@string/carrier_settings_title">
-        <intent android:action="android.intent.action.MAIN"
-                android:targetPackage="@string/carrier_settings"
-                android:targetClass="@string/carrier_settings_menu" />
-    </PreferenceScreen>
-
-</PreferenceScreen>
diff --git a/res/xml/network_setting_fragment.xml b/res/xml/network_setting_fragment.xml
deleted file mode 100644
index d334861..0000000
--- a/res/xml/network_setting_fragment.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<?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">
-
-    <PreferenceScreen
-        android:key="cdma_lte_data_service_key"
-        android:title="@string/cdma_lte_data_service">
-    </PreferenceScreen>
-
-    <com.android.phone.MobileDataPreference
-        android:key="mobile_data_enable"
-        android:title="@string/mobile_data_settings_title"
-        android:summary="@string/mobile_data_settings_summary"/>
-
-    <com.android.phone.RestrictedSwitchPreference
-        android:key="button_roaming_key"
-        android:title="@string/roaming"
-        android:persistent="false"
-        android:summaryOn="@string/roaming_enable"
-        android:summaryOff="@string/roaming_disable"/>
-
-    <com.android.phone.DataUsagePreference
-        android:key="data_usage_summary"
-        android:title="@string/data_usage_title" />
-
-    <com.android.phone.AdvancedOptionsPreference
-        android:key="advanced_options"/>
-
-    <SwitchPreference
-        android:key="enhanced_4g_lte"
-        android:title="@string/enhanced_4g_lte_mode_title"
-        android:persistent="false"
-        android:summary="@string/enhanced_4g_lte_mode_summary"/>
-
-    <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" />
-
-    <ListPreference
-        android:key="enabled_networks_key"
-        android:title="@string/preferred_network_mode_title"
-        android:summary="@string/preferred_network_mode_summary"
-        android:entries="@array/enabled_networks_choices"
-        android:entryValues="@array/enabled_networks_values"
-        android:dialogTitle="@string/preferred_network_mode_dialogtitle" />
-
-    <Preference
-        android:key="carrier_settings_euicc_key"
-        android:title="@string/carrier_settings_euicc" />
-
-    <PreferenceCategory
-        android:key="calling"
-        android:title="@string/call_category">
-
-        <PreferenceScreen
-            android:key="wifi_calling_key"
-            android:title="@string/wifi_calling_settings_title">
-
-            <intent android:action="android.intent.action.MAIN"
-                    android:targetPackage="com.android.settings"
-                    android:targetClass="com.android.settings.Settings$WifiCallingSettingsActivity">
-                        <extra android:name="show_drawer_menu" android:value="true" />
-            </intent>
-
-        </PreferenceScreen>
-
-        <SwitchPreference
-            android:key="video_calling_key"
-            android:title="@string/video_calling_settings_title"
-            android:persistent="true"/>
-
-    </PreferenceCategory>
-
-</PreferenceScreen>
diff --git a/res/xml/voicemail_settings.xml b/res/xml/voicemail_settings.xml
index 021a764..cbe1cf4 100644
--- a/res/xml/voicemail_settings.xml
+++ b/res/xml/voicemail_settings.xml
@@ -15,7 +15,7 @@
 -->
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:phone="http://schemas.android.com/apk/res/com.android.phone"
+    xmlns:phone="http://schemas.android.com/apk/res-auto"
     android:title="@string/voicemail">
 
     <com.android.phone.settings.VoicemailProviderListPreference
diff --git a/sip/res/values-ar/strings.xml b/sip/res/values-ar/strings.xml
index f60f726..e971077 100644
--- a/sip/res/values-ar/strings.xml
+++ b/sip/res/values-ar/strings.xml
@@ -34,7 +34,7 @@
     <string name="sip_menu_save" msgid="4377112554203123060">"حفظ"</string>
     <string name="sip_menu_discard" msgid="1883166691772895243">"إلغاء"</string>
     <string name="alert_dialog_close" msgid="1734746505531110706">"إغلاق الملف الشخصي"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"حسنًا"</string>
+    <string name="alert_dialog_ok" msgid="7806760618798687406">"موافق"</string>
     <string name="close_profile" msgid="3756064641769751774">"إغلاق"</string>
     <string name="registration_status_checking_status" msgid="884179594507591180">"جارٍ فحص الحالة…"</string>
     <string name="registration_status_registering" msgid="7986331597809521791">"جارٍ التسجيل…"</string>
diff --git a/sip/res/values-eu/strings.xml b/sip/res/values-eu/strings.xml
index 0925002..5c7b0ce 100644
--- a/sip/res/values-eu/strings.xml
+++ b/sip/res/values-eu/strings.xml
@@ -26,7 +26,7 @@
     <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Dei guztietan datu-sarea erabilgarri dagoenean"</string>
     <string name="sip_call_options_entry_2" msgid="7338504256051655013">"SIP deietan soilik"</string>
     <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Dei guztietan"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Gehitu kontu bat"</string>
+    <string name="add_sip_account" msgid="5754758646745144384">"Gehitu kontua"</string>
     <string name="remove_sip_account" msgid="8272617403399636513">"Kendu kontua"</string>
     <string name="sip_account_list" msgid="2596262496233721769">"SIP kontuak"</string>
     <string name="saving_account" msgid="3390358043846687266">"Kontua gordetzen…"</string>
@@ -72,7 +72,7 @@
     <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> behar da eta ezin da hutsik utzi."</string>
     <string name="not_a_valid_port" msgid="3664668836663491376">"Ataka-zenbakiak 1000 eta 65534 artean egon behar luke."</string>
     <string name="no_internet_available" msgid="161720645084325479">"SIP deiak egiteko, egiaztatu Internetera konektatuta zaudela."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Wifi-sare batera konektatuta egon behar zara SIP deiak egiteko (erabili hari gabekoen eta sareen ezarpenak)."</string>
+    <string name="no_wifi_available" msgid="1179092018692306312">"Wi-Fi sare batera konektatuta egon behar zara SIP deiak egiteko (erabili hari gabekoen eta sareen ezarpenak)."</string>
     <string name="no_voip" msgid="3366395789297981738">"SIP deiak ez dira onartzen"</string>
     <string name="sip_system_decide" msgid="197230378376326430">"Automatikoa"</string>
     <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Bidali beti"</string>
diff --git a/sip/res/values-ky/strings.xml b/sip/res/values-ky/strings.xml
index 6916f24..23d5561 100644
--- a/sip/res/values-ky/strings.xml
+++ b/sip/res/values-ky/strings.xml
@@ -40,7 +40,7 @@
     <string name="registration_status_registering" msgid="7986331597809521791">"Катталууда…"</string>
     <string name="registration_status_still_trying" msgid="7178623685868766282">"Дагы эле аракет жасалууда…"</string>
     <string name="registration_status_not_receiving" msgid="3873074208531938401">"Чалуулар кабыл алынбайт"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Интернет жок болгондуктан, эсепти каттоо аракети токтотулду."</string>
+    <string name="registration_status_no_data" msgid="2987064560116584121">"Интернет байланышы жок болгондуктан, эсепти каттоо аракети токтотулду."</string>
     <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Wi-Fi байланышы жок болгондуктан, эсепти каттоо аракети токтотулду."</string>
     <string name="registration_status_not_running" msgid="6236403137652262659">"Эсеп катталбай калды."</string>
     <string name="registration_status_done" msgid="6787397199273357721">"Чалуулар кабыл алынат."</string>
diff --git a/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java b/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java
index ec77ff1..1cf7f4b 100644
--- a/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java
+++ b/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java
@@ -126,7 +126,7 @@
      * @param context The context.
      */
     void verifyAndPurgeInvalidPhoneAccounts(Context context) {
-        TelecomManager telecomManager = TelecomManager.from(context);
+        TelecomManager telecomManager = context.getSystemService(TelecomManager.class);
         SipProfileDb profileDb = new SipProfileDb(context);
         List<PhoneAccountHandle> accountHandles = telecomManager.getPhoneAccountsSupportingScheme(
                 PhoneAccount.SCHEME_SIP);
@@ -188,7 +188,8 @@
 
         // Un-register its PhoneAccount.
         PhoneAccountHandle handle = SipUtil.createAccountHandle(context, sipProfileName);
-        TelecomManager.from(context).unregisterPhoneAccount(handle);
+        TelecomManager tm = context.getSystemService(TelecomManager.class);
+        tm.unregisterPhoneAccount(handle);
     }
 
     /**
@@ -235,7 +236,7 @@
     private void startSipProfiles(Context context, String sipProfileName, boolean enableProfile) {
         final SipPreferences sipPreferences = new SipPreferences(context);
         boolean isReceivingCalls = sipPreferences.isReceivingCallsEnabled();
-        TelecomManager telecomManager = TelecomManager.from(context);
+        TelecomManager telecomManager = context.getSystemService(TelecomManager.class);
         SipManager sipManager = SipManager.newInstance(context);
         SipProfileDb profileDb = new SipProfileDb(context);
         List<SipProfile> sipProfileList = profileDb.retrieveSipProfileList();
diff --git a/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java b/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java
index 19f5882..2dbd707 100644
--- a/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java
+++ b/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java
@@ -73,7 +73,7 @@
         if (accountHandle != null) {
             Bundle extras = new Bundle();
             extras.putParcelable(SipUtil.EXTRA_INCOMING_CALL_INTENT, intent);
-            TelecomManager tm = TelecomManager.from(context);
+            TelecomManager tm = context.getSystemService(TelecomManager.class);
             PhoneAccount phoneAccount = tm.getPhoneAccount(accountHandle);
             if (phoneAccount != null && phoneAccount.isEnabled()) {
                 tm.addNewIncomingCall(accountHandle, extras);
@@ -84,7 +84,7 @@
     }
 
     private boolean isRunningInSystemUser() {
-        return UserHandle.myUserId() == UserHandle.USER_SYSTEM;
+        return UserHandle.myUserId() == UserHandle.SYSTEM.getIdentifier();
     }
 
     private static void log(String msg) {
diff --git a/sip/src/com/android/services/telephony/sip/SipProfileDb.java b/sip/src/com/android/services/telephony/sip/SipProfileDb.java
index bb1c7ec..812ebb4 100644
--- a/sip/src/com/android/services/telephony/sip/SipProfileDb.java
+++ b/sip/src/com/android/services/telephony/sip/SipProfileDb.java
@@ -16,11 +16,10 @@
 
 package com.android.services.telephony.sip;
 
-import com.android.internal.os.AtomicFile;
-
 import android.content.Context;
 import android.net.sip.SipProfile;
 import android.text.TextUtils;
+import android.util.AtomicFile;
 import android.util.EventLog;
 import android.util.Log;
 
diff --git a/sip/src/com/android/services/telephony/sip/SipSettings.java b/sip/src/com/android/services/telephony/sip/SipSettings.java
index ded16df..813ba51 100644
--- a/sip/src/com/android/services/telephony/sip/SipSettings.java
+++ b/sip/src/com/android/services/telephony/sip/SipSettings.java
@@ -42,6 +42,7 @@
 import com.android.phone.R;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.LinkedHashMap;
@@ -238,9 +239,9 @@
     }
 
     private void processActiveProfilesFromSipService() {
-        SipProfile[] activeList = {};
+        List<SipProfile> activeList = new ArrayList<>();
         try {
-            activeList = mSipManager.getListOfProfiles();
+            activeList = mSipManager.getProfiles();
         } catch (SipException e) {
             log("SipManager could not retrieve SIP profiles: " + e);
         }
diff --git a/sip/src/com/android/services/telephony/sip/SipUtil.java b/sip/src/com/android/services/telephony/sip/SipUtil.java
index ff38754..5c7409f 100644
--- a/sip/src/com/android/services/telephony/sip/SipUtil.java
+++ b/sip/src/com/android/services/telephony/sip/SipUtil.java
@@ -29,12 +29,11 @@
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
+import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import android.util.Log;
 
 import com.android.phone.PhoneGlobals;
-import com.android.phone.R;
-import com.android.server.sip.SipService;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -46,16 +45,17 @@
             "com.android.services.telephony.sip.incoming_call_intent";
     static final String EXTRA_PHONE_ACCOUNT =
             "com.android.services.telephony.sip.phone_account";
+    static final String PHONE_PACKAGE = "com.android.phone";
 
     private SipUtil() {
     }
 
     public static boolean isVoipSupported(Context context) {
-        return SipManager.isVoipSupported(context) &&
-                context.getResources().getBoolean(
-                        com.android.internal.R.bool.config_built_in_sip_phone) &&
-                context.getResources().getBoolean(
-                        com.android.internal.R.bool.config_voice_capable);
+        return SipManager.isVoipSupported(context)
+                && context.getResources().getBoolean(
+                        com.android.internal.R.bool.config_built_in_sip_phone)
+                        && ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE))
+                        .isVoiceCapable();
     }
 
     static PendingIntent createIncomingCallPendingIntent(
@@ -190,7 +190,10 @@
         // Migrate SIP database from DE->CE storage if the device has just upgraded.
         possiblyMigrateSipDb(phoneGlobalsContext);
         // Wait until boot complete to start SIP so that it has access to CE storage.
-        SipService.start(phoneGlobalsContext);
+        Intent startSipIntent = new Intent();
+        startSipIntent.setAction(SipManager.ACTION_START_SIP);
+        startSipIntent.setPackage(PHONE_PACKAGE);
+        phoneGlobalsContext.startService(startSipIntent);
     }
 
     /**
diff --git a/sip/src/com/android/services/telephony/sip/components/TelephonySipService.java b/sip/src/com/android/services/telephony/sip/components/TelephonySipService.java
new file mode 100644
index 0000000..5b863b1
--- /dev/null
+++ b/sip/src/com/android/services/telephony/sip/components/TelephonySipService.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2020 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.services.telephony.sip.components;
+
+import android.app.Service;
+import android.content.Intent;
+import android.net.sip.SipManager;
+import android.os.IBinder;
+
+import com.android.server.sip.SipService;
+
+/**
+ * This class represents telephony SIP service which handle start SIP service requests from
+ * Telephony.
+ */
+public class TelephonySipService extends Service {
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {
+        if ((intent != null)
+                && SipManager.ACTION_START_SIP.equals(intent.getAction())) {
+            SipService.start(this);
+        }
+        return START_STICKY;
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+}
diff --git a/src/com/android/phone/AdvancedOptionsPreference.java b/src/com/android/phone/AdvancedOptionsPreference.java
deleted file mode 100644
index 5f07790..0000000
--- a/src/com/android/phone/AdvancedOptionsPreference.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2017 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.Preference;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.TextView;
-
-/**
- * Customized preference class representing the "Advanced" button that expands to fields that
- * are hidden by default.
- */
-public class AdvancedOptionsPreference extends Preference {
-    public AdvancedOptionsPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    @Override
-    protected void onBindView(View view) {
-        super.onBindView(view);
-
-        setIcon(com.android.internal.R.drawable.ic_expand_more);
-        setTitle(R.string.advanced_options_title);
-        TextView summary = view.findViewById(android.R.id.summary);
-        summary.setMaxLines(1);
-    }
-}
diff --git a/src/com/android/phone/CLIRListPreference.java b/src/com/android/phone/CLIRListPreference.java
index 5c6132b..d8a9041 100755
--- a/src/com/android/phone/CLIRListPreference.java
+++ b/src/com/android/phone/CLIRListPreference.java
@@ -47,10 +47,15 @@
     protected void onDialogClosed(boolean positiveResult) {
         super.onDialogClosed(positiveResult);
 
-        mPhone.setOutgoingCallerIdDisplay(convertValueToCLIRMode(getValue()),
-                mHandler.obtainMessage(MyHandler.MESSAGE_SET_CLIR));
-        if (mTcpListener != null) {
-            mTcpListener.onStarted(this, false);
+        if (positiveResult && (getValue() != null)) {
+            mPhone.setOutgoingCallerIdDisplay(convertValueToCLIRMode(getValue()),
+                    mHandler.obtainMessage(MyHandler.MESSAGE_SET_CLIR));
+            if (mTcpListener != null) {
+                mTcpListener.onStarted(this, false);
+            }
+        } else {
+            Log.d(LOG_TAG, String.format("onDialogClosed: positiveResult=%b value=%s -- do nothing",
+                        positiveResult, getValue()));
         }
     }
 
diff --git a/src/com/android/phone/CallBarringDeselectAllPreference.java b/src/com/android/phone/CallBarringDeselectAllPreference.java
index 153bc0c..7191937 100644
--- a/src/com/android/phone/CallBarringDeselectAllPreference.java
+++ b/src/com/android/phone/CallBarringDeselectAllPreference.java
@@ -18,14 +18,10 @@
 
 import android.content.Context;
 import android.os.Bundle;
-import android.telephony.ServiceState;
 import android.util.AttributeSet;
-import android.util.Log;
 import android.view.View;
 import android.widget.EditText;
 
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.imsphone.ImsPhone;
 import com.android.phone.settings.fdn.EditPinPreference;
 
 /**
@@ -35,9 +31,6 @@
     private static final String LOG_TAG = "CallBarringDeselectAllPreference";
     private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
 
-    private boolean mShowPassword;
-    private Phone mPhone;
-
     /**
      * CallBarringDeselectAllPreference constructor.
      *
@@ -50,30 +43,10 @@
 
     @Override
     protected void showDialog(Bundle state) {
-        // Finds out if the password field should be shown or not.
-        ImsPhone imsPhone = mPhone != null ? (ImsPhone) mPhone.getImsPhone() : null;
-        mShowPassword = !(imsPhone != null
-                && ((imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)
-                        || imsPhone.isUtEnabled()));
-
-        // Selects dialog message depending on if the password field is shown or not.
-        setDialogMessage(getContext().getString(mShowPassword
-                ? R.string.messageCallBarring : R.string.call_barring_deactivate_all_no_password));
-
-        if (DBG) {
-            Log.d(LOG_TAG, "showDialog: mShowPassword: " + mShowPassword);
-        }
-
+        setDialogMessage(getContext().getString(R.string.messageCallBarring));
         super.showDialog(state);
     }
 
-    void init(Phone phone) {
-        if (DBG) {
-            Log.d(LOG_TAG, "init: phoneId = " + phone.getPhoneId());
-        }
-        mPhone = phone;
-    }
-
     @Override
     protected void onBindDialogView(View view) {
         super.onBindDialogView(view);
@@ -81,20 +54,7 @@
         final EditText editText = (EditText) view.findViewById(android.R.id.edit);
         if (editText != null) {
             // Hide the input-text-line if the password is not shown.
-            editText.setVisibility(mShowPassword ? View.VISIBLE : View.GONE);
+            editText.setVisibility(View.VISIBLE);
         }
     }
-
-    @Override
-    protected boolean needInputMethod() {
-        // Input method should only be displayed if the password-field is shown.
-        return mShowPassword;
-    }
-
-    /**
-     * Returns whether the password field is shown.
-     */
-    boolean isPasswordShown() {
-        return mShowPassword;
-    }
 }
diff --git a/src/com/android/phone/CallBarringEditPreference.java b/src/com/android/phone/CallBarringEditPreference.java
index 72b3ea5..5d83de1 100644
--- a/src/com/android/phone/CallBarringEditPreference.java
+++ b/src/com/android/phone/CallBarringEditPreference.java
@@ -26,7 +26,6 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.telephony.ServiceState;
 import android.text.method.DigitsKeyListener;
 import android.text.method.PasswordTransformationMethod;
 import android.util.AttributeSet;
@@ -36,10 +35,10 @@
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.android.internal.telephony.CommandsInterface;
 import com.android.internal.telephony.CommandException;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneFactory;
-import com.android.internal.telephony.imsphone.ImsPhone;
 import com.android.phone.settings.fdn.EditPinPreference;
 
 import java.lang.ref.WeakReference;
@@ -58,10 +57,7 @@
     private CharSequence mDisableText;
     private CharSequence mSummaryOn;
     private CharSequence mSummaryOff;
-    private CharSequence mDialogMessageEnabled;
-    private CharSequence mDialogMessageDisabled;
     private int mButtonClicked;
-    private boolean mShowPassword;
     private final MyHandler mHandler = new MyHandler(this);
     private Phone mPhone;
     private TimeConsumingPreferenceListener mTcpListener;
@@ -78,9 +74,9 @@
         super(context, attrs);
         // Get the summary settings, use CheckBoxPreference as the standard.
         TypedArray typedArray = context.obtainStyledAttributes(attrs,
-                android.R.styleable.CheckBoxPreference, 0, 0);
-        mSummaryOn = typedArray.getString(android.R.styleable.CheckBoxPreference_summaryOn);
-        mSummaryOff = typedArray.getString(android.R.styleable.CheckBoxPreference_summaryOff);
+                R.styleable.CheckBoxPreference, 0, 0);
+        mSummaryOn = typedArray.getString(R.styleable.CheckBoxPreference_summaryOn);
+        mSummaryOff = typedArray.getString(R.styleable.CheckBoxPreference_summaryOff);
         mDisableText = context.getText(R.string.disable);
         mEnableText = context.getText(R.string.enable);
         typedArray.recycle();
@@ -91,10 +87,6 @@
         typedArray = context.obtainStyledAttributes(attrs,
                 R.styleable.CallBarringEditPreference, 0, R.style.EditPhoneNumberPreference);
         mFacility = typedArray.getString(R.styleable.CallBarringEditPreference_facility);
-        mDialogMessageEnabled = typedArray.getString(
-                R.styleable.CallBarringEditPreference_dialogMessageEnabledNoPwd);
-        mDialogMessageDisabled = typedArray.getString(
-                R.styleable.CallBarringEditPreference_dialogMessageDisabledNoPwd);
         typedArray.recycle();
     }
 
@@ -117,7 +109,7 @@
         if (!skipReading) {
             // Query call barring status
             mPhone.getCallBarring(mFacility, "", mHandler.obtainMessage(
-                    MyHandler.MESSAGE_GET_CALL_BARRING), 0);
+                    MyHandler.MESSAGE_GET_CALL_BARRING), CommandsInterface.SERVICE_CLASS_VOICE);
             if (mTcpListener != null) {
                 mTcpListener.onStarted(this, true);
             }
@@ -131,29 +123,8 @@
     }
 
     @Override
-    protected boolean needInputMethod() {
-        // Input method should only be displayed if the password-field is shown.
-        return mShowPassword;
-    }
-
-    void setInputMethodNeeded(boolean needed) {
-        mShowPassword = needed;
-    }
-
-    @Override
     protected void showDialog(Bundle state) {
-        setShowPassword();
-        if (mShowPassword) {
-            setDialogMessage(getContext().getString(R.string.messageCallBarring));
-        } else {
-            setDialogMessage(mIsActivated ? mDialogMessageEnabled : mDialogMessageDisabled);
-        }
-
-        if (DBG) {
-            Log.d(LOG_TAG, "showDialog: mShowPassword: " + mShowPassword
-                    + ", mIsActivated: " + mIsActivated);
-        }
-
+        setDialogMessage(getContext().getString(R.string.messageCallBarring));
         super.showDialog(state);
     }
 
@@ -205,8 +176,7 @@
             editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
             editText.setKeyListener(DigitsKeyListener.getInstance());
 
-            // Hide the input-text-line if the password is not shown.
-            editText.setVisibility(mShowPassword ? View.VISIBLE : View.GONE);
+            editText.setVisibility(View.VISIBLE);
         }
     }
 
@@ -218,17 +188,14 @@
                     + positiveResult);
         }
         if (mButtonClicked != DialogInterface.BUTTON_NEGATIVE) {
-            String password = null;
-            if (mShowPassword) {
-                password = getEditText().getText().toString();
+            String password = getEditText().getText().toString();
 
-                // Check if the password is valid.
-                if (password == null || password.length() != PW_LENGTH) {
-                    Toast.makeText(getContext(),
-                            getContext().getString(R.string.call_barring_right_pwd_number),
-                            Toast.LENGTH_SHORT).show();
-                    return;
-                }
+            // Check if the password is valid.
+            if (password == null || password.length() != PW_LENGTH) {
+                Toast.makeText(getContext(),
+                        getContext().getString(R.string.call_barring_right_pwd_number),
+                        Toast.LENGTH_SHORT).show();
+                return;
             }
 
             if (DBG) {
@@ -236,7 +203,8 @@
             }
             // Send set call barring message to RIL layer.
             mPhone.setCallBarring(mFacility, !mIsActivated, password,
-                    mHandler.obtainMessage(MyHandler.MESSAGE_SET_CALL_BARRING), 0);
+                    mHandler.obtainMessage(MyHandler.MESSAGE_SET_CALL_BARRING),
+                    CommandsInterface.SERVICE_CLASS_VOICE);
             if (mTcpListener != null) {
                 mTcpListener.onStarted(this, false);
             }
@@ -255,13 +223,6 @@
         notifyDependencyChange(shouldDisableDependents());
     }
 
-    private void setShowPassword() {
-        ImsPhone imsPhone = mPhone != null ? (ImsPhone) mPhone.getImsPhone() : null;
-        mShowPassword = !(imsPhone != null
-                && ((imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)
-                        || imsPhone.isUtEnabled()));
-    }
-
     @Override
     public boolean shouldDisableDependents() {
         return mIsActivated;
@@ -313,16 +274,6 @@
                 pref.mTcpListener.onFinished(pref, false);
             } else {
                 pref.mTcpListener.onFinished(pref, true);
-                ImsPhone imsPhone = pref.mPhone != null
-                        ? (ImsPhone) pref.mPhone.getImsPhone() : null;
-                if (!pref.mShowPassword && (imsPhone == null || !imsPhone.isUtEnabled())) {
-                    // Re-enable password when rejected from NW and modem would perform CSFB
-                    pref.mShowPassword = true;
-                    if (DBG) {
-                        Log.d(LOG_TAG,
-                                "handleGetCallBarringResponse: mShowPassword changed for CSFB");
-                    }
-                }
             }
 
             // Unsuccessful query for call barring.
@@ -377,7 +328,7 @@
                     "",
                     obtainMessage(MESSAGE_GET_CALL_BARRING, 0, MESSAGE_SET_CALL_BARRING,
                             ar.exception),
-                    0);
+                    CommandsInterface.SERVICE_CLASS_VOICE);
         }
     }
 }
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index ea9dd3f..3f57cae 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -28,6 +28,7 @@
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.ResolveInfo;
+import android.content.res.Resources;
 import android.os.Bundle;
 import android.os.PersistableBundle;
 import android.os.UserManager;
@@ -227,9 +228,9 @@
                                 startActivity(intent);
                             }
                         };
-                builder.setMessage(getResources().getString(
+                builder.setMessage(getResourcesForSubId().getString(
                                 R.string.enable_video_calling_dialog_msg))
-                        .setNeutralButton(getResources().getString(
+                        .setNeutralButton(getResourcesForSubId().getString(
                                 R.string.enable_video_calling_dialog_settings),
                                 networkSettingsClickListener)
                         .setPositiveButton(android.R.string.ok, null)
@@ -248,7 +249,8 @@
         if (DBG) log("onCreate: Intent is " + getIntent());
 
         // Make sure we are running as an admin user.
-        if (!UserManager.get(this).isAdminUser()) {
+        UserManager userManager = (UserManager) getSystemService(Context.USER_SERVICE);
+        if (!userManager.isAdminUser()) {
             Toast.makeText(this, R.string.call_settings_admin_user_only,
                     Toast.LENGTH_SHORT).show();
             finish();
@@ -256,10 +258,10 @@
         }
 
         mSubscriptionInfoHelper = new SubscriptionInfoHelper(this, getIntent());
-        mSubscriptionInfoHelper.setActionBarTitle(
-                getActionBar(), getResources(), R.string.call_settings_with_label);
         mPhone = mSubscriptionInfoHelper.getPhone();
-        mTelecomManager = TelecomManager.from(this);
+        mSubscriptionInfoHelper.setActionBarTitle(
+                getActionBar(), getResourcesForSubId(), R.string.call_settings_with_label);
+        mTelecomManager = getSystemService(TelecomManager.class);
     }
 
     private void updateImsManager(Phone phone) {
@@ -274,8 +276,8 @@
     }
 
     private void listenPhoneState(boolean listen) {
-        TelephonyManager telephonyManager =
-                (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
+        TelephonyManager telephonyManager = getSystemService(TelephonyManager.class)
+                .createForSubscriptionId(mPhone.getSubId());
         telephonyManager.listen(mPhoneStateListener, listen
                 ? PhoneStateListener.LISTEN_CALL_STATE : PhoneStateListener.LISTEN_NONE);
     }
@@ -284,10 +286,7 @@
         @Override
         public void onCallStateChanged(int state, String incomingNumber) {
             if (DBG) log("PhoneStateListener onCallStateChanged: state is " + state);
-            // Use TelecomManager#getCallStete instead of 'state' parameter because it needs
-            // to check the current state of all phone calls.
-            boolean isCallStateIdle =
-                    mTelecomManager.getCallState() == TelephonyManager.CALL_STATE_IDLE;
+            boolean isCallStateIdle = state == TelephonyManager.CALL_STATE_IDLE;
             if (mEnableVideoCalling != null) {
                 mEnableVideoCalling.setEnabled(isCallStateIdle);
             }
@@ -364,7 +363,7 @@
         mButtonAutoRetry = (SwitchPreference) findPreference(BUTTON_RETRY_KEY);
 
         mEnableVideoCalling = (SwitchPreference) findPreference(ENABLE_VIDEO_CALLING_KEY);
-        mButtonWifiCalling = findPreference(getResources().getString(
+        mButtonWifiCalling = findPreference(getResourcesForSubId().getString(
                 R.string.wifi_calling_settings_key));
 
         PersistableBundle carrierConfig =
@@ -477,8 +476,7 @@
         } else if (!mImsMgr.isWfcEnabledByPlatform() || !mImsMgr.isWfcProvisionedOnDevice()) {
             prefSet.removePreference(mButtonWifiCalling);
         } else {
-            String title = SubscriptionManager.getResourcesForSubId(mPhone.getContext(),
-                    mPhone.getSubId()).getString(R.string.wifi_calling);
+            String title = getResourcesForSubId().getString(R.string.wifi_calling);
             mButtonWifiCalling.setTitle(title);
 
             int resId = com.android.internal.R.string.wifi_calling_off_summary;
@@ -500,7 +498,7 @@
                         if (DBG) log("Unexpected WFC mode value: " + wfcMode);
                 }
             }
-            mButtonWifiCalling.setSummary(resId);
+            mButtonWifiCalling.setSummary(getResourcesForSubId().getString(resId));
             Intent intent = mButtonWifiCalling.getIntent();
             if (intent != null) {
                 intent.putExtra(Settings.EXTRA_SUB_ID, mPhone.getSubId());
@@ -562,9 +560,9 @@
         setIntent(newIntent);
 
         mSubscriptionInfoHelper = new SubscriptionInfoHelper(this, getIntent());
-        mSubscriptionInfoHelper.setActionBarTitle(
-                getActionBar(), getResources(), R.string.call_settings_with_label);
         mPhone = mSubscriptionInfoHelper.getPhone();
+        mSubscriptionInfoHelper.setActionBarTitle(
+                getActionBar(), getResourcesForSubId(), R.string.call_settings_with_label);
     }
 
     private static void log(String msg) {
@@ -593,4 +591,12 @@
         activity.startActivity(intent);
         activity.finish();
     }
+
+    private Resources getResourcesForSubId() {
+        if (mPhone != null) {
+            return SubscriptionManager.getResourcesForSubId(mPhone.getContext(), mPhone.getSubId());
+        } else {
+            return getResources();
+        }
+    }
 }
diff --git a/src/com/android/phone/CallForwardEditPreference.java b/src/com/android/phone/CallForwardEditPreference.java
index 76f17b1..e8cf0d1 100644
--- a/src/com/android/phone/CallForwardEditPreference.java
+++ b/src/com/android/phone/CallForwardEditPreference.java
@@ -159,6 +159,7 @@
                     mPhone.setCallForwardingOption(action,
                             reason,
                             number,
+                            mServiceClass,
                             time,
                             mHandler.obtainMessage(MyHandler.MESSAGE_SET_CF,
                                     action,
@@ -216,7 +217,7 @@
      */
     void startCallForwardOptionsQuery() {
         if (!mCallForwardByUssd) {
-            mPhone.getCallForwardingOption(reason,
+            mPhone.getCallForwardingOption(reason, mServiceClass,
                     mHandler.obtainMessage(MyHandler.MESSAGE_GET_CF,
                             // unused in this case
                             CommandsInterface.CF_ACTION_DISABLE,
@@ -359,9 +360,8 @@
                     mTcpListener.onError(CallForwardEditPreference.this, RESPONSE_ERROR);
                 }
                 CallForwardInfo cfInfoArray[] = (CallForwardInfo[]) ar.result;
-                if (cfInfoArray.length == 0) {
+                if (cfInfoArray == null || cfInfoArray.length == 0) {
                     Log.d(LOG_TAG, "handleGetCFResponse: cfInfoArray.length==0");
-                    setEnabled(false);
                     mTcpListener.onError(CallForwardEditPreference.this, RESPONSE_ERROR);
                 } else {
                     for (int i = 0, length = cfInfoArray.length; i < length; i++) {
@@ -372,6 +372,11 @@
                             CallForwardInfo info = cfInfoArray[i];
                             handleCallForwardResult(info);
 
+                            if (ar.userObj instanceof Throwable) {
+                                Log.d(LOG_TAG, "Skipped duplicated error dialog");
+                                continue;
+                            }
+
                             // Show an alert if we got a success response but
                             // with unexpected values.
                             // Currently only handle the fail-to-disable case
@@ -423,7 +428,7 @@
             }
             Log.d(LOG_TAG, "handleSetCFResponse: re get");
             if (!mCallForwardByUssd) {
-                mPhone.getCallForwardingOption(reason,
+                mPhone.getCallForwardingOption(reason, mServiceClass,
                         obtainMessage(MESSAGE_GET_CF, msg.arg1, MESSAGE_SET_CF, ar.exception));
             } else {
                 mHandler.sendMessage(mHandler.obtainMessage(mHandler.MESSAGE_GET_CF_USSD,
diff --git a/src/com/android/phone/CallNotifier.java b/src/com/android/phone/CallNotifier.java
index 7db17ff..6c18623 100644
--- a/src/com/android/phone/CallNotifier.java
+++ b/src/com/android/phone/CallNotifier.java
@@ -21,6 +21,7 @@
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 import android.media.AudioManager;
+import android.media.AudioSystem;
 import android.media.ToneGenerator;
 import android.os.AsyncResult;
 import android.os.Handler;
@@ -392,10 +393,10 @@
             try {
                 int stream;
                 if (mBluetoothHeadset != null) {
-                    stream = mBluetoothHeadset.isAudioOn() ? AudioManager.STREAM_BLUETOOTH_SCO:
-                        AudioManager.STREAM_VOICE_CALL;
+                    stream = isBluetoothAudioOn() ? AudioSystem.STREAM_BLUETOOTH_SCO :
+                            AudioSystem.STREAM_VOICE_CALL;
                 } else {
-                    stream = AudioManager.STREAM_VOICE_CALL;
+                    stream = AudioSystem.STREAM_VOICE_CALL;
                 }
                 toneGenerator = new ToneGenerator(stream, toneVolume);
                 // if (DBG) log("- created toneGenerator: " + toneGenerator);
@@ -479,6 +480,11 @@
         }
     }
 
+    // Returns whether there are any connected Bluetooth audio devices
+    private boolean isBluetoothAudioOn() {
+        return mBluetoothHeadset.getConnectedDevices().size() > 0;
+    }
+
     /**
      * Displays a notification when the phone receives a DisplayInfo record.
      */
@@ -553,7 +559,8 @@
 
     public void updatePhoneStateListeners(boolean isRefresh, int updateType, int subIdToUpdate) {
         List<SubscriptionInfo> subInfos = SubscriptionController.getInstance()
-                .getActiveSubscriptionInfoList(mApplication.getOpPackageName());
+                .getActiveSubscriptionInfoList(mApplication.getOpPackageName(),
+                        mApplication.getAttributionTag());
 
         // Sort sub id list based on slot id, so that CFI/MWI notifications will be updated for
         // slot 0 first then slot 1. This is needed to ensure that when CFI or MWI is enabled for
@@ -610,7 +617,7 @@
         for (int i = 0; i < subInfos.size(); i++) {
             int subId = subInfos.get(i).getSubscriptionId();
             if (!mPhoneStateListeners.containsKey(subId)) {
-                CallNotifierPhoneStateListener listener = new CallNotifierPhoneStateListener();
+                CallNotifierPhoneStateListener listener = new CallNotifierPhoneStateListener(subId);
                 mTelephonyManager.createForSubscriptionId(subId).listen(listener,
                         PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR
                         | PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR);
@@ -762,8 +769,11 @@
             };
 
     private class CallNotifierPhoneStateListener extends PhoneStateListener {
-        public CallNotifierPhoneStateListener() {
+        private final int mSubId;
+
+        CallNotifierPhoneStateListener(int subId) {
             super();
+            this.mSubId = subId;
         }
 
         @Override
diff --git a/src/com/android/phone/CarrierConfigLoader.java b/src/com/android/phone/CarrierConfigLoader.java
index 36f14b7..7b3d3c1 100644
--- a/src/com/android/phone/CarrierConfigLoader.java
+++ b/src/com/android/phone/CarrierConfigLoader.java
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2015, The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,7 +20,8 @@
 import static android.service.carrier.CarrierService.ICarrierServiceWrapper.RESULT_ERROR;
 
 import android.annotation.NonNull;
-import android.app.ActivityManager;
+import android.annotation.Nullable;
+import android.app.AppOpsManager;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
@@ -37,9 +38,9 @@
 import android.os.IBinder;
 import android.os.Message;
 import android.os.PersistableBundle;
+import android.os.Process;
 import android.os.RemoteException;
 import android.os.ResultReceiver;
-import android.os.ServiceManager;
 import android.os.UserHandle;
 import android.preference.PreferenceManager;
 import android.service.carrier.CarrierIdentifier;
@@ -47,7 +48,9 @@
 import android.service.carrier.ICarrierService;
 import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyFrameworkInitializer;
 import android.telephony.TelephonyManager;
+import android.text.TextUtils;
 import android.util.LocalLog;
 import android.util.Log;
 
@@ -57,14 +60,9 @@
 import com.android.internal.telephony.PhoneFactory;
 import com.android.internal.telephony.SubscriptionInfoUpdater;
 import com.android.internal.telephony.TelephonyPermissions;
-import com.android.internal.util.ArrayUtils;
-import com.android.internal.util.FastXmlSerializer;
+import com.android.internal.telephony.util.ArrayUtils;
 import com.android.internal.util.IndentingPrintWriter;
 
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-import org.xmlpull.v1.XmlPullParserFactory;
-
 import java.io.File;
 import java.io.FileDescriptor;
 import java.io.FileInputStream;
@@ -81,7 +79,6 @@
 /**
  * CarrierConfigLoader binds to privileged carrier apps to fetch carrier config overlays.
  */
-
 public class CarrierConfigLoader extends ICarrierConfigLoader.Stub {
     private static final String LOG_TAG = "CarrierConfigLoader";
 
@@ -96,6 +93,8 @@
     private PersistableBundle[] mConfigFromDefaultApp;
     // Carrier configs from privileged carrier config app, indexed by phoneID.
     private PersistableBundle[] mConfigFromCarrierApp;
+    // Persistent Carrier configs that are provided via the override test API, indexed by phone ID.
+    private PersistableBundle[] mPersistentOverrideConfigs;
     // Carrier configs that are provided via the override test API, indexed by phone ID.
     private PersistableBundle[] mOverrideConfigs;
     // Service connection for binding to config app.
@@ -111,7 +110,7 @@
     private final BroadcastReceiver mBootReceiver = new ConfigLoaderBroadcastReceiver();
     // Broadcast receiver for SIM and pkg intents, register intent filter in constructor.
     private final BroadcastReceiver mPackageReceiver = new ConfigLoaderBroadcastReceiver();
-    private final LocalLog mCarrierConfigLoadingLog = new LocalLog(50);
+    private final LocalLog mCarrierConfigLoadingLog = new LocalLog(100);
 
 
     // Message codes; see mHandler below.
@@ -145,17 +144,25 @@
     private static final int EVENT_FETCH_CARRIER_TIMEOUT = 15;
     // SubscriptionInfoUpdater has finished updating the sub for the carrier config.
     private static final int EVENT_SUBSCRIPTION_INFO_UPDATED = 16;
+    // Multi-SIM config changed.
+    private static final int EVENT_MULTI_SIM_CONFIG_CHANGED = 17;
 
     private static final int BIND_TIMEOUT_MILLIS = 30000;
 
-    // Tags used for saving and restoring XML documents.
-    private static final String TAG_DOCUMENT = "carrier_config";
-    private static final String TAG_VERSION = "package_version";
-    private static final String TAG_BUNDLE = "bundle_data";
+    // Keys used for saving and restoring config bundle from file.
+    private static final String KEY_VERSION = "__carrier_config_package_version__";
+
+    private static final String OVERRIDE_PACKAGE_ADDITION = "-override";
 
     // SharedPreferences key for last known build fingerprint.
     private static final String KEY_FINGERPRINT = "build_fingerprint";
 
+    // Argument for #dump that indicates we should also call the default and specified carrier
+    // service's #dump method. In multi-SIM devices, it's possible that carrier A is on SIM 1 and
+    // carrier B is on SIM 2, in which case we should not dump carrier B's service when carrier A
+    // requested the dump.
+    private static final String DUMP_ARG_REQUESTING_PACKAGE = "--requesting-package";
+
     // Handler to process various events.
     //
     // For each phoneId, the event sequence should be:
@@ -177,58 +184,60 @@
         @Override
         public void handleMessage(Message msg) {
             final int phoneId = msg.arg1;
-            logWithLocalLog("mHandler: " + msg.what + " phoneId: " + phoneId);
+            logdWithLocalLog("mHandler: " + msg.what + " phoneId: " + phoneId);
+            if (!SubscriptionManager.isValidPhoneId(phoneId)
+                    && msg.what != EVENT_MULTI_SIM_CONFIG_CHANGED) {
+                return;
+            }
             switch (msg.what) {
-                case EVENT_CLEAR_CONFIG:
-                {
-                    /* Ignore clear configuration request if device is being shutdown. */
-                    Phone phone = PhoneFactory.getPhone(phoneId);
-                    if (phone != null) {
-                        if (phone.isShuttingDown()) {
-                            break;
-                        }
-                    }
-
-                    mConfigFromDefaultApp[phoneId] = null;
-                    mConfigFromCarrierApp[phoneId] = null;
-                    mServiceConnection[phoneId] = null;
-                    broadcastConfigChangedIntent(phoneId, false);
+                case EVENT_CLEAR_CONFIG: {
+                    clearConfigForPhone(phoneId, true);
                     break;
                 }
 
-                case EVENT_SYSTEM_UNLOCKED:
-                {
-                    for (int i = 0; i < TelephonyManager.from(mContext).getPhoneCount(); ++i) {
+                case EVENT_SYSTEM_UNLOCKED: {
+                    for (int i = 0; i < TelephonyManager.from(mContext).getActiveModemCount();
+                            ++i) {
                         // When user unlock device, we should only try to send broadcast again if we
                         // have sent it before unlock. This will avoid we try to load carrier config
                         // when SIM is still loading when unlock happens.
                         if (mHasSentConfigChange[i]) {
+                            logdWithLocalLog("System unlocked");
                             updateConfigForPhoneId(i);
                         }
                     }
                     break;
                 }
 
-                case EVENT_PACKAGE_CHANGED:
-                {
+                case EVENT_PACKAGE_CHANGED: {
                     final String carrierPackageName = (String) msg.obj;
                     // Only update if there are cached config removed to avoid updating config for
                     // unrelated packages.
                     if (clearCachedConfigForPackage(carrierPackageName)) {
-                        int numPhones = TelephonyManager.from(mContext).getPhoneCount();
+                        int numPhones = TelephonyManager.from(mContext).getActiveModemCount();
                         for (int i = 0; i < numPhones; ++i) {
+                            logdWithLocalLog("Package changed: " + carrierPackageName
+                                    + ", phone=" + i);
                             updateConfigForPhoneId(i);
                         }
                     }
                     break;
                 }
 
-                case EVENT_DO_FETCH_DEFAULT:
-                {
-                    final PersistableBundle config =
-                            restoreConfigFromXml(mPlatformCarrierConfigPackage, phoneId);
+                case EVENT_DO_FETCH_DEFAULT: {
+                    // Restore persistent override values.
+                    PersistableBundle config = restoreConfigFromXml(
+                            mPlatformCarrierConfigPackage, OVERRIDE_PACKAGE_ADDITION, phoneId);
                     if (config != null) {
-                        log(
+                        logd("Loaded persistent override config from XML. package="
+                                + mPlatformCarrierConfigPackage
+                                + " phoneId=" + phoneId);
+                        mPersistentOverrideConfigs[phoneId] = config;
+                    }
+
+                    config = restoreConfigFromXml(mPlatformCarrierConfigPackage, "", phoneId);
+                    if (config != null) {
+                        logd(
                                 "Loaded config from XML. package="
                                         + mPlatformCarrierConfigPackage
                                         + " phoneId="
@@ -258,8 +267,7 @@
                     break;
                 }
 
-                case EVENT_CONNECTED_TO_DEFAULT:
-                {
+                case EVENT_CONNECTED_TO_DEFAULT: {
                     removeMessages(EVENT_BIND_DEFAULT_TIMEOUT);
                     final CarrierServiceConnection conn = (CarrierServiceConnection) msg.obj;
                     // If new service connection has been created, unbind.
@@ -288,8 +296,8 @@
                                     }
                                     PersistableBundle config =
                                             resultData.getParcelable(KEY_CONFIG_BUNDLE);
-                                    saveConfigToXml(mPlatformCarrierConfigPackage, phoneId,
-                                        carrierId, config);
+                                    saveConfigToXml(mPlatformCarrierConfigPackage, "", phoneId,
+                                            carrierId, config);
                                     mConfigFromDefaultApp[phoneId] = config;
                                     sendMessage(
                                             obtainMessage(
@@ -301,7 +309,7 @@
                         ICarrierService carrierService =
                                 ICarrierService.Stub.asInterface(conn.service);
                         carrierService.getCarrierConfig(carrierId, resultReceiver);
-                        logWithLocalLog("fetch config for default app: "
+                        logdWithLocalLog("Fetch config for default app: "
                                 + mPlatformCarrierConfigPackage
                                 + " carrierid: " + carrierId.toString());
                     } catch (RemoteException e) {
@@ -317,9 +325,8 @@
                 }
 
                 case EVENT_BIND_DEFAULT_TIMEOUT:
-                case EVENT_FETCH_DEFAULT_TIMEOUT:
-                {
-                    loge("bind/fetch time out from " + mPlatformCarrierConfigPackage);
+                case EVENT_FETCH_DEFAULT_TIMEOUT: {
+                    loge("Bind/fetch time out from " + mPlatformCarrierConfigPackage);
                     removeMessages(EVENT_FETCH_DEFAULT_TIMEOUT);
                     // If we attempted to bind to the app, but the service connection is null due to
                     // the race condition that clear config event happens before bind/fetch complete
@@ -327,15 +334,14 @@
                     if (mServiceConnection[phoneId] != null) {
                         // If a ResponseReceiver callback is in the queue when this happens, we will
                         // unbind twice and throw an exception.
-                        mContext.unbindService(mServiceConnection[phoneId]);
+                        unbindIfBound(mContext, mServiceConnection[phoneId], phoneId);
                         broadcastConfigChangedIntent(phoneId);
                     }
                     notifySubscriptionInfoUpdater(phoneId);
                     break;
                 }
 
-                case EVENT_FETCH_DEFAULT_DONE:
-                {
+                case EVENT_FETCH_DEFAULT_DONE: {
                     // If we attempted to bind to the app, but the service connection is null, then
                     // config was cleared while we were waiting and we should not continue.
                     if (!msg.getData().getBoolean("loaded_from_xml", false)
@@ -344,7 +350,7 @@
                     }
                     final String carrierPackageName = getCarrierPackageForPhoneId(phoneId);
                     if (carrierPackageName != null) {
-                        log("Found carrier config app: " + carrierPackageName);
+                        logd("Found carrier config app: " + carrierPackageName);
                         sendMessage(obtainMessage(EVENT_DO_FETCH_CARRIER, phoneId, -1));
                     } else {
                         notifySubscriptionInfoUpdater(phoneId);
@@ -352,13 +358,12 @@
                     break;
                 }
 
-                case EVENT_DO_FETCH_CARRIER:
-                {
+                case EVENT_DO_FETCH_CARRIER: {
                     final String carrierPackageName = getCarrierPackageForPhoneId(phoneId);
                     final PersistableBundle config =
-                            restoreConfigFromXml(carrierPackageName, phoneId);
+                            restoreConfigFromXml(carrierPackageName, "", phoneId);
                     if (config != null) {
-                        log(
+                        logd(
                                 "Loaded config from XML. package="
                                         + carrierPackageName
                                         + " phoneId="
@@ -369,26 +374,22 @@
                         sendMessage(newMsg);
                     } else {
                         // No cached config, so fetch it from a carrier app.
-                        if (carrierPackageName != null
-                                && bindToConfigPackage(
-                                        carrierPackageName,
-                                        phoneId,
-                                        EVENT_CONNECTED_TO_CARRIER)) {
+                        if (carrierPackageName != null && bindToConfigPackage(carrierPackageName,
+                                phoneId, EVENT_CONNECTED_TO_CARRIER)) {
                             sendMessageDelayed(
                                     obtainMessage(EVENT_BIND_CARRIER_TIMEOUT, phoneId, -1),
                                     BIND_TIMEOUT_MILLIS);
                         } else {
                             // Send broadcast if bind fails.
                             broadcastConfigChangedIntent(phoneId);
-                            loge("bind to carrier app: " + carrierPackageName + " fails");
+                            loge("Bind to carrier app: " + carrierPackageName + " fails");
                             notifySubscriptionInfoUpdater(phoneId);
                         }
                     }
                     break;
                 }
 
-                case EVENT_CONNECTED_TO_CARRIER:
-                {
+                case EVENT_CONNECTED_TO_CARRIER: {
                     removeMessages(EVENT_BIND_CARRIER_TIMEOUT);
                     final CarrierServiceConnection conn = (CarrierServiceConnection) msg.obj;
                     // If new service connection has been created, unbind.
@@ -419,8 +420,8 @@
                                     }
                                     PersistableBundle config =
                                             resultData.getParcelable(KEY_CONFIG_BUNDLE);
-                                    saveConfigToXml(getCarrierPackageForPhoneId(phoneId), phoneId,
-                                        carrierId, config);
+                                    saveConfigToXml(getCarrierPackageForPhoneId(phoneId), "",
+                                            phoneId, carrierId, config);
                                     mConfigFromCarrierApp[phoneId] = config;
                                     sendMessage(
                                             obtainMessage(
@@ -432,7 +433,7 @@
                         ICarrierService carrierService =
                                 ICarrierService.Stub.asInterface(conn.service);
                         carrierService.getCarrierConfig(carrierId, resultReceiver);
-                        logWithLocalLog("fetch config for carrier app: "
+                        logdWithLocalLog("Fetch config for carrier app: "
                                 + getCarrierPackageForPhoneId(phoneId)
                                 + " carrierid: " + carrierId.toString());
                     } catch (RemoteException e) {
@@ -447,9 +448,8 @@
                 }
 
                 case EVENT_BIND_CARRIER_TIMEOUT:
-                case EVENT_FETCH_CARRIER_TIMEOUT:
-                {
-                    loge("bind/fetch from carrier app timeout");
+                case EVENT_FETCH_CARRIER_TIMEOUT: {
+                    loge("Bind/fetch from carrier app timeout");
                     removeMessages(EVENT_FETCH_CARRIER_TIMEOUT);
                     // If we attempted to bind to the app, but the service connection is null due to
                     // the race condition that clear config event happens before bind/fetch complete
@@ -463,8 +463,7 @@
                     notifySubscriptionInfoUpdater(phoneId);
                     break;
                 }
-                case EVENT_FETCH_CARRIER_DONE:
-                {
+                case EVENT_FETCH_CARRIER_DONE: {
                     // If we attempted to bind to the app, but the service connection is null, then
                     // config was cleared while we were waiting and we should not continue.
                     if (!msg.getData().getBoolean("loaded_from_xml", false)
@@ -475,13 +474,12 @@
                     break;
                 }
 
-                case EVENT_CHECK_SYSTEM_UPDATE:
-                {
+                case EVENT_CHECK_SYSTEM_UPDATE: {
                     SharedPreferences sharedPrefs =
                             PreferenceManager.getDefaultSharedPreferences(mContext);
                     final String lastFingerprint = sharedPrefs.getString(KEY_FINGERPRINT, null);
                     if (!Build.FINGERPRINT.equals(lastFingerprint)) {
-                        log(
+                        logd(
                                 "Build fingerprint changed. old: "
                                         + lastFingerprint
                                         + " new: "
@@ -498,6 +496,9 @@
                 case EVENT_SUBSCRIPTION_INFO_UPDATED:
                     broadcastConfigChangedIntent(phoneId);
                     break;
+                case EVENT_MULTI_SIM_CONFIG_CHANGED:
+                    onMultiSimConfigChanged();
+                    break;
             }
         }
     }
@@ -525,18 +526,20 @@
         pkgFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
         pkgFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);
         pkgFilter.addDataScheme("package");
-        context.registerReceiverAsUser(mPackageReceiver, UserHandle.ALL, pkgFilter, null, null);
+        context.registerReceiver(mPackageReceiver, pkgFilter);
 
-        int numPhones = TelephonyManager.from(context).getPhoneCount();
+        int numPhones = TelephonyManager.from(context).getSupportedModemCount();
         mConfigFromDefaultApp = new PersistableBundle[numPhones];
         mConfigFromCarrierApp = new PersistableBundle[numPhones];
+        mPersistentOverrideConfigs = new PersistableBundle[numPhones];
         mOverrideConfigs = new PersistableBundle[numPhones];
         mServiceConnection = new CarrierServiceConnection[numPhones];
         mServiceBound = new boolean[numPhones];
         mHasSentConfigChange = new boolean[numPhones];
         // Make this service available through ServiceManager.
-        ServiceManager.addService(Context.CARRIER_CONFIG_SERVICE, this);
-        log("CarrierConfigLoader has started");
+        TelephonyFrameworkInitializer
+                .getTelephonyServiceManager().getCarrierConfigServiceRegisterer().register(this);
+        logd("CarrierConfigLoader has started");
         mSubscriptionInfoUpdater = PhoneFactory.getSubscriptionInfoUpdater();
         mHandler.sendEmptyMessage(EVENT_CHECK_SYSTEM_UPDATE);
     }
@@ -558,6 +561,23 @@
         }
     }
 
+    private void clearConfigForPhone(int phoneId, boolean sendBroadcast) {
+        /* Ignore clear configuration request if device is being shutdown. */
+        Phone phone = PhoneFactory.getPhone(phoneId);
+        if (phone != null) {
+            if (phone.isShuttingDown()) {
+                return;
+            }
+        }
+
+        mConfigFromDefaultApp[phoneId] = null;
+        mConfigFromCarrierApp[phoneId] = null;
+        mServiceConnection[phoneId] = null;
+        mHasSentConfigChange[phoneId] = false;
+
+        if (sendBroadcast) broadcastConfigChangedIntent(phoneId, false);
+    }
+
     private void notifySubscriptionInfoUpdater(int phoneId) {
         String configPackagename;
         PersistableBundle configToSend;
@@ -571,6 +591,18 @@
             configPackagename = mPlatformCarrierConfigPackage;
             configToSend = mConfigFromDefaultApp[phoneId];
         }
+
+        if (configToSend == null) {
+            configToSend = new PersistableBundle();
+        }
+
+        // mOverrideConfigs is for testing. And it will override current configs.
+        PersistableBundle config = mOverrideConfigs[phoneId];
+        if (config != null) {
+            configToSend = new PersistableBundle(configToSend);
+            configToSend.putAll(config);
+        }
+
         mSubscriptionInfoUpdater.updateSubscriptionByCarrierConfigAndNotifyComplete(
                 phoneId, configPackagename, configToSend,
                 mHandler.obtainMessage(EVENT_SUBSCRIPTION_INFO_UPDATED, phoneId, -1));
@@ -583,7 +615,6 @@
     private void broadcastConfigChangedIntent(int phoneId, boolean addSubIdExtra) {
         Intent intent = new Intent(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
         intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT |
-                Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND |
                 Intent.FLAG_RECEIVER_FOREGROUND);
         if (addSubIdExtra) {
             int simApplicationState = TelephonyManager.SIM_STATE_UNKNOWN;
@@ -603,17 +634,17 @@
             }
         }
         intent.putExtra(CarrierConfigManager.EXTRA_SLOT_INDEX, phoneId);
-        log("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId);
-        ActivityManager.broadcastStickyIntent(intent, UserHandle.USER_ALL);
+        logd("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId);
+        mContext.sendBroadcastAsUser(intent, UserHandle.ALL);
         mHasSentConfigChange[phoneId] = true;
     }
 
     /** Binds to the default or carrier config app. */
     private boolean bindToConfigPackage(String pkgName, int phoneId, int eventId) {
-        logWithLocalLog("Binding to " + pkgName + " for phone " + phoneId);
+        logdWithLocalLog("Binding to " + pkgName + " for phone " + phoneId);
         Intent carrierService = new Intent(CarrierService.CARRIER_SERVICE_INTERFACE);
         carrierService.setPackage(pkgName);
-        mServiceConnection[phoneId] = new CarrierServiceConnection(phoneId, eventId);
+        mServiceConnection[phoneId] = new CarrierServiceConnection(phoneId, pkgName, eventId);
         try {
             if (mContext.bindService(carrierService, mServiceConnection[phoneId],
                     Context.BIND_AUTO_CREATE)) {
@@ -720,12 +751,13 @@
      * In case of errors or invalid input, no file will be written.
      *
      * @param packageName the name of the package from which we fetched this bundle.
-     * @param phoneId the phone ID.
-     * @param carrierId contains all carrier-identifying information.
-     * @param config the bundle to be written. Null will be treated as an empty bundle.
+     * @param extraString An extra string to be used in the XML file name.
+     * @param phoneId     the phone ID.
+     * @param carrierId   contains all carrier-identifying information.
+     * @param config      the bundle to be written. Null will be treated as an empty bundle.
      */
-    private void saveConfigToXml(String packageName, int phoneId, CarrierIdentifier carrierId,
-        PersistableBundle config) {
+    private void saveConfigToXml(String packageName, @NonNull String extraString, int phoneId,
+            CarrierIdentifier carrierId, PersistableBundle config) {
         if (SubscriptionManager.getSimStateForSlotIndex(phoneId)
                 != TelephonyManager.SIM_STATE_LOADED) {
             loge("Skip save config because SIM records are not loaded.");
@@ -753,32 +785,19 @@
             return;
         }
 
-        logWithLocalLog("save config to xml, packagename: " + packageName + " phoneId: " + phoneId);
+        logdWithLocalLog(
+                "Save config to xml, packagename: " + packageName + " phoneId: " + phoneId);
 
         FileOutputStream outFile = null;
         try {
             outFile = new FileOutputStream(
                     new File(mContext.getFilesDir(),
-                            getFilenameForConfig(packageName, iccid, cid)));
-            FastXmlSerializer out = new FastXmlSerializer();
-            out.setOutput(outFile, "utf-8");
-            out.startDocument("utf-8", true);
-            out.startTag(null, TAG_DOCUMENT);
-            out.startTag(null, TAG_VERSION);
-            out.text(version);
-            out.endTag(null, TAG_VERSION);
-            out.startTag(null, TAG_BUNDLE);
-            config.saveToXml(out);
-            out.endTag(null, TAG_BUNDLE);
-            out.endTag(null, TAG_DOCUMENT);
-            out.endDocument();
-            out.flush();
+                            getFilenameForConfig(packageName, extraString, iccid, cid)));
+            config.putString(KEY_VERSION, version);
+            config.writeToStream(outFile);
+            outFile.flush();
             outFile.close();
-        }
-        catch (IOException e) {
-            loge(e.toString());
-        }
-        catch (XmlPullParserException e) {
+        } catch (IOException e) {
             loge(e.toString());
         }
     }
@@ -793,11 +812,13 @@
      * current version, then null will be returned.
      *
      * @param packageName the name of the package from which we fetched this bundle.
-     * @param phoneId the phone ID.
+     * @param extraString An extra string to be used in the XML file name.
+     * @param phoneId     the phone ID.
      * @return the bundle from the XML file. Returns null if there is no saved config, the saved
-     *         version does not match, or reading config fails.
+     * version does not match, or reading config fails.
      */
-    private PersistableBundle restoreConfigFromXml(String packageName, int phoneId) {
+    private PersistableBundle restoreConfigFromXml(String packageName, @NonNull String extraString,
+            int phoneId) {
         final String version = getPackageVersion(packageName);
         if (version == null) {
             loge("Failed to get package version for: " + packageName);
@@ -817,38 +838,28 @@
         }
 
         PersistableBundle restoredBundle = null;
+        File file = null;
         FileInputStream inFile = null;
         try {
-            inFile = new FileInputStream(
-                    new File(mContext.getFilesDir(),
-                            getFilenameForConfig(packageName, iccid, cid)));
-            XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
-            parser.setInput(inFile, "utf-8");
+            file = new File(mContext.getFilesDir(),
+                    getFilenameForConfig(packageName, extraString, iccid, cid));
+            inFile = new FileInputStream(file);
 
-            int event;
-            while (((event = parser.next()) != XmlPullParser.END_DOCUMENT)) {
+            restoredBundle = PersistableBundle.readFromStream(inFile);
+            String savedVersion = restoredBundle.getString(KEY_VERSION);
+            restoredBundle.remove(KEY_VERSION);
 
-                if (event == XmlPullParser.START_TAG && TAG_VERSION.equals(parser.getName())) {
-                    String savedVersion = parser.nextText();
-                    if (!version.equals(savedVersion)) {
-                        loge("Saved version mismatch: " + version + " vs " + savedVersion);
-                        break;
-                    }
-                }
-
-                if (event == XmlPullParser.START_TAG && TAG_BUNDLE.equals(parser.getName())) {
-                    restoredBundle = PersistableBundle.restoreFromXml(parser);
-                }
+            if (!version.equals(savedVersion)) {
+                loge("Saved version mismatch: " + version + " vs " + savedVersion);
+                restoredBundle = null;
             }
+
             inFile.close();
-        }
-        catch (FileNotFoundException e) {
-            loge(e.toString());
-        }
-        catch (XmlPullParserException e) {
-            loge(e.toString());
-        }
-        catch (IOException e) {
+        } catch (FileNotFoundException e) {
+            // Missing file is normal occurrence that might occur with a new sim or when restoring
+            // an override file during boot and should not be treated as an error.
+            if (file != null) logd("File not found: " + file.getPath());
+        } catch (IOException e) {
             loge(e.toString());
         }
 
@@ -877,20 +888,20 @@
         });
         if (packageFiles == null || packageFiles.length < 1) return false;
         for (File f : packageFiles) {
-            log("deleting " + f.getName());
+            logd("Deleting " + f.getName());
             f.delete();
         }
         return true;
     }
 
     /** Builds a canonical file name for a config file. */
-    private String getFilenameForConfig(@NonNull String packageName, @NonNull String iccid,
-                                        int cid) {
+    private String getFilenameForConfig(@NonNull String packageName, @NonNull String extraString,
+            @NonNull String iccid, int cid) {
         // the same carrier should have a single copy of XML file named after carrier id.
         // However, it's still possible that platform doesn't recognize the current sim carrier,
         // we will use iccid + carrierid as the canonical file name. carrierid can also handle the
         // cases SIM OTA resolves to different carrier while iccid remains the same.
-        return "carrierconfig-" + packageName + "-" + iccid + "-" + cid + ".xml";
+        return "carrierconfig-" + packageName + extraString + "-" + iccid + "-" + cid + ".xml";
     }
 
     /** Return the current version code of a package, or null if the name is not found. */
@@ -920,10 +931,25 @@
         mHandler.sendMessage(mHandler.obtainMessage(EVENT_DO_FETCH_DEFAULT, phoneId, -1));
     }
 
+    private void onMultiSimConfigChanged() {
+        for (int i = TelephonyManager.from(mContext).getActiveModemCount();
+                i < mConfigFromDefaultApp.length; i++) {
+            clearConfigForPhone(i, false);
+        }
+    }
+
     @Override
-    public @NonNull PersistableBundle getConfigForSubId(int subId, String callingPackage) {
-        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mContext, subId, callingPackage, "getCarrierConfig")) {
+    @NonNull
+    public PersistableBundle getConfigForSubId(int subId, String callingPackage) {
+        return getConfigForSubIdWithFeature(subId, callingPackage, null);
+    }
+
+    @Override
+    @NonNull
+    public PersistableBundle getConfigForSubIdWithFeature(int subId, String callingPackage,
+            String callingFeatureId) {
+        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mContext, subId, callingPackage,
+                callingFeatureId, "getCarrierConfig")) {
             return new PersistableBundle();
         }
 
@@ -933,49 +959,77 @@
             PersistableBundle config = mConfigFromDefaultApp[phoneId];
             if (config != null) {
                 retConfig.putAll(config);
-                retConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true);
+                if (getCarrierPackageForPhoneId(phoneId) == null) {
+                    retConfig.putBoolean(
+                            CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true);
+                }
             }
             config = mConfigFromCarrierApp[phoneId];
             if (config != null) {
                 retConfig.putAll(config);
                 retConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true);
             }
+            config = mPersistentOverrideConfigs[phoneId];
+            if (config != null) {
+                retConfig.putAll(config);
+                retConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true);
+            }
             config = mOverrideConfigs[phoneId];
             if (config != null) {
                 retConfig.putAll(config);
-                retConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true);
             }
         }
         return retConfig;
     }
 
     @Override
-    public void overrideConfig(int subscriptionId, PersistableBundle overrides) {
+    public void overrideConfig(int subscriptionId, @Nullable PersistableBundle overrides,
+            boolean persistent) {
         mContext.enforceCallingOrSelfPermission(
                 android.Manifest.permission.MODIFY_PHONE_STATE, null);
         //TODO: Also check for SHELL UID to restrict this method to testing only (b/131326259)
         int phoneId = SubscriptionManager.getPhoneId(subscriptionId);
         if (!SubscriptionManager.isValidPhoneId(phoneId)) {
-            log("Ignore invalid phoneId: " + phoneId + " for subId: " + subscriptionId);
+            logd("Ignore invalid phoneId: " + phoneId + " for subId: " + subscriptionId);
             return;
         }
+        overrideConfig(mOverrideConfigs, phoneId, overrides);
 
-        if (overrides == null) {
-            mOverrideConfigs[phoneId] = new PersistableBundle();
-        } else if (mOverrideConfigs[phoneId] == null) {
-            mOverrideConfigs[phoneId] = overrides;
-        } else {
-            mOverrideConfigs[phoneId].putAll(overrides);
+        if (persistent) {
+            overrideConfig(mPersistentOverrideConfigs, phoneId, overrides);
+
+            if (overrides != null) {
+                final CarrierIdentifier carrierId = getCarrierIdentifierForPhoneId(phoneId);
+                saveConfigToXml(mPlatformCarrierConfigPackage, OVERRIDE_PACKAGE_ADDITION, phoneId,
+                        carrierId, mPersistentOverrideConfigs[phoneId]);
+            } else {
+                final String iccid = getIccIdForPhoneId(phoneId);
+                final int cid = getSpecificCarrierIdForPhoneId(phoneId);
+                String fileName = getFilenameForConfig(mPlatformCarrierConfigPackage,
+                        OVERRIDE_PACKAGE_ADDITION, iccid, cid);
+                File fileToDelete = new File(mContext.getFilesDir(), fileName);
+                fileToDelete.delete();
+            }
         }
-
         notifySubscriptionInfoUpdater(phoneId);
     }
 
+    private void overrideConfig(@NonNull PersistableBundle[] currentOverrides, int phoneId,
+            @Nullable PersistableBundle overrides) {
+        if (overrides == null) {
+            currentOverrides[phoneId] = new PersistableBundle();
+        } else if (currentOverrides[phoneId] == null) {
+            currentOverrides[phoneId] = overrides;
+        } else {
+            currentOverrides[phoneId].putAll(overrides);
+        }
+    }
+
     @Override
     public void notifyConfigChangedForSubId(int subId) {
         int phoneId = SubscriptionManager.getPhoneId(subId);
         if (!SubscriptionManager.isValidPhoneId(phoneId)) {
-            log("Ignore invalid phoneId: " + phoneId + " for subId: " + subId);
+            logd("Ignore invalid phoneId: " + phoneId + " for subId: " + subId);
             return;
         }
 
@@ -997,7 +1051,7 @@
     public void updateConfigForPhoneId(int phoneId, String simState) {
         mContext.enforceCallingOrSelfPermission(
                 android.Manifest.permission.MODIFY_PHONE_STATE, null);
-        logWithLocalLog("update config for phoneId: " + phoneId + " simState: " + simState);
+        logdWithLocalLog("Update config for phoneId: " + phoneId + " simState: " + simState);
         if (!SubscriptionManager.isValidPhoneId(phoneId)) {
             return;
         }
@@ -1007,6 +1061,7 @@
             case IccCardConstants.INTENT_VALUE_ICC_CARD_IO_ERROR:
             case IccCardConstants.INTENT_VALUE_ICC_CARD_RESTRICTED:
             case IccCardConstants.INTENT_VALUE_ICC_UNKNOWN:
+            case IccCardConstants.INTENT_VALUE_ICC_NOT_READY:
                 mHandler.sendMessage(mHandler.obtainMessage(EVENT_CLEAR_CONFIG, phoneId, -1));
                 break;
             case IccCardConstants.INTENT_VALUE_ICC_LOADED:
@@ -1018,45 +1073,79 @@
 
     @Override
     public String getDefaultCarrierServicePackageName() {
+        mContext.enforceCallingOrSelfPermission(
+                android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
+                "getDefaultCarrierServicePackageName");
         return mPlatformCarrierConfigPackage;
     }
 
+    private void unbindIfBound(Context context, CarrierServiceConnection conn,
+            int phoneId) {
+        if (mServiceBound[phoneId]) {
+            mServiceBound[phoneId] = false;
+            context.unbindService(conn);
+        }
+    }
+
+    /**
+     * If {@code args} contains {@link #DUMP_ARG_REQUESTING_PACKAGE} and a following package name,
+     * we'll also call {@link IBinder#dump} on the default carrier service (if bound) and the
+     * specified carrier service (if bound). Typically, this is done for connectivity bug reports
+     * where we don't call {@code dumpsys activity service all-non-platform} because that contains
+     * too much info, but we still want to let carrier apps include their diagnostics.
+     */
     @Override
     public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        IndentingPrintWriter indentPW = new IndentingPrintWriter(pw, "    ");
         if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
                 != PackageManager.PERMISSION_GRANTED) {
-            pw.println("Permission Denial: can't dump carrierconfig from from pid="
+            indentPW.println("Permission Denial: can't dump carrierconfig from from pid="
                     + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid());
             return;
         }
-        pw.println("CarrierConfigLoader: " + this);
+        indentPW.println("CarrierConfigLoader: " + this);
         for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
-            pw.println("Phone Id = " + i);
+            indentPW.println("Phone Id = " + i);
             // display default values in CarrierConfigManager
-            printConfig(CarrierConfigManager.getDefaultConfig(), pw,
+            printConfig(CarrierConfigManager.getDefaultConfig(), indentPW,
                     "Default Values from CarrierConfigManager");
-            pw.println("");
             // display ConfigFromDefaultApp
-            printConfig(mConfigFromDefaultApp[i], pw, "mConfigFromDefaultApp");
-            pw.println("");
+            printConfig(mConfigFromDefaultApp[i], indentPW, "mConfigFromDefaultApp");
             // display ConfigFromCarrierApp
-            printConfig(mConfigFromCarrierApp[i], pw, "mConfigFromCarrierApp");
-            pw.println("");
-            printConfig(mOverrideConfigs[i], pw, "mOverrideConfigs");
+            printConfig(mConfigFromCarrierApp[i], indentPW, "mConfigFromCarrierApp");
+            printConfig(mPersistentOverrideConfigs[i], indentPW, "mPersistentOverrideConfigs");
+            printConfig(mOverrideConfigs[i], indentPW, "mOverrideConfigs");
         }
 
-        pw.println("CarrierConfigLoadingLog=");
-        mCarrierConfigLoadingLog.dump(fd, pw, args);
+        indentPW.println("CarrierConfigLoadingLog=");
+        mCarrierConfigLoadingLog.dump(fd, indentPW, args);
+
+        int requestingPackageIndex = ArrayUtils.indexOf(args, DUMP_ARG_REQUESTING_PACKAGE);
+        if (requestingPackageIndex != -1 && requestingPackageIndex < args.length - 1
+                && !TextUtils.isEmpty(args[requestingPackageIndex + 1])) {
+            String requestingPackage = args[requestingPackageIndex + 1];
+            indentPW.println("");
+            // Throws a SecurityException if the caller is impersonating another app in an effort to
+            // dump extra info (which may contain PII the caller doesn't have a right to).
+            enforceCallerIsSystemOrRequestingPackage(requestingPackage);
+            logd("Including default and requesting package " + requestingPackage
+                    + " carrier services in dump");
+            indentPW.println("Connected services");
+            dumpCarrierServiceIfBound(fd, indentPW, "Default config package",
+                    mPlatformCarrierConfigPackage);
+            dumpCarrierServiceIfBound(fd, indentPW, "Requesting package", requestingPackage);
+        }
     }
 
-    private void printConfig(PersistableBundle configApp, PrintWriter pw, String name) {
-        IndentingPrintWriter indentPW = new IndentingPrintWriter(pw, "    ");
+    private void printConfig(PersistableBundle configApp, IndentingPrintWriter indentPW,
+            String name) {
+        indentPW.increaseIndent();
         if (configApp == null) {
-            indentPW.increaseIndent();
             indentPW.println(name + " : null ");
+            indentPW.decreaseIndent();
+            indentPW.println("");
             return;
         }
-        indentPW.increaseIndent();
         indentPW.println(name + " : ");
         List<String> sortedKeys = new ArrayList<String>(configApp.keySet());
         Collections.sort(sortedKeys);
@@ -1072,35 +1161,125 @@
                 indentPW.println(key + " = " + configApp.get(key));
             }
         }
+        indentPW.decreaseIndent();
+        indentPW.decreaseIndent();
+        indentPW.decreaseIndent();
+        indentPW.println("");
     }
 
-    private void unbindIfBound(Context context, CarrierServiceConnection conn,
-            int phoneId) {
-        if (mServiceBound[phoneId]) {
-            mServiceBound[phoneId] = false;
-            context.unbindService(conn);
+    /**
+     * Passes without problem when one of these conditions is true:
+     * - The caller is a privileged UID (e.g. for dumpstate.cpp generating a bug report, where the
+     * system knows the true caller plumbed in through the {@link android.os.BugreportManager} API).
+     * - The caller's UID matches the supplied package.
+     *
+     * @throws SecurityException if none of the above conditions are met.
+     */
+    private void enforceCallerIsSystemOrRequestingPackage(String requestingPackage)
+            throws SecurityException {
+        final int callingUid = Binder.getCallingUid();
+        if (callingUid == Process.ROOT_UID || callingUid == Process.SYSTEM_UID
+                || callingUid == Process.SHELL_UID || callingUid == Process.PHONE_UID) {
+            // Bug reports (dumpstate.cpp) run as SHELL, and let some other privileged UIDs through
+            // as well.
+            return;
         }
+        // An app is trying to dump extra detail, block it if they aren't who they claim to be.
+        AppOpsManager appOps = mContext.getSystemService(AppOpsManager.class);
+        if (appOps == null) {
+            throw new SecurityException("No AppOps");
+        }
+        // Will throw a SecurityException if the UID and package don't match.
+        appOps.checkPackage(callingUid, requestingPackage);
+    }
+
+    private void dumpCarrierServiceIfBound(FileDescriptor fd, IndentingPrintWriter indentPW,
+            String prefix, String pkgName) {
+        // Null package is possible if it's early in the boot process, there was a recent crash, we
+        // loaded the config from XML most recently, or a SIM slot is empty. Carrier apps with
+        // long-lived bindings should typically get dumped here regardless. Even if an app is being
+        // used for multiple phoneIds, we assume that it's smart enough to handle that on its own,
+        // and that in most cases we'd just be dumping duplicate information and bloating a report.
+        indentPW.increaseIndent();
+        indentPW.println(prefix + " : " + pkgName);
+        for (CarrierServiceConnection connection : mServiceConnection) {
+            try {
+                // We don't pay attention to mServiceBound[connection.phoneId] because typically
+                // carrier apps will request long-lived bindings, and even if we unbind the app, it
+                // may still be alive due to CarrierServiceBindHelper.
+                if (connection == null || connection.service == null || !TextUtils.equals(pkgName,
+                        connection.pkgName) || !connection.service.isBinderAlive()
+                        || !connection.service.pingBinder()) {
+                    continue;
+                }
+                // Flush before we let the app output anything to ensure correct ordering of output.
+                // Internally, Binder#dump calls flush on its printer after finishing so we don't
+                // need to after the call finishes.
+                indentPW.flush();
+                try {
+                    logd("Dumping " + pkgName);
+                    // We don't need to give the carrier service any args.
+                    connection.service.dump(fd, null /* args */);
+                    logd("Done with " + pkgName);
+                    indentPW.decreaseIndent();
+                    indentPW.println("");
+                    return;
+                } catch (RemoteException e) {
+                    indentPW.println("RemoteException");
+                    logd("RemoteException from " + pkgName, e);
+                    e.printStackTrace(indentPW);
+                    indentPW.decreaseIndent();
+                    indentPW.println("");
+                    return;
+                }
+            } catch (NullPointerException e) {
+                // Highly unlikely, but possible if the carrier app was just unbound right before we
+                // we tried to dump it so the binder was reset to null. Loop in case we have more
+                // candidates on other phoneIds.
+                logd("NullPointerException from " + pkgName, e);
+            }
+        }
+        indentPW.increaseIndent();
+        indentPW.println("Not bound");
+        indentPW.decreaseIndent();
+        indentPW.decreaseIndent();
+        indentPW.println("");
     }
 
     private class CarrierServiceConnection implements ServiceConnection {
         int phoneId;
+        String pkgName;
         int eventId;
         IBinder service;
 
-        public CarrierServiceConnection(int phoneId, int eventId) {
+        CarrierServiceConnection(int phoneId, String pkgName, int eventId) {
             this.phoneId = phoneId;
+            this.pkgName = pkgName;
             this.eventId = eventId;
         }
 
         @Override
         public void onServiceConnected(ComponentName name, IBinder service) {
-            log("Connected to config app: " + name.flattenToString());
+            logd("Connected to config app: " + name.flattenToShortString());
             this.service = service;
             mHandler.sendMessage(mHandler.obtainMessage(eventId, phoneId, -1, this));
         }
 
         @Override
         public void onServiceDisconnected(ComponentName name) {
+            logd("Disconnected from config app: " + name.flattenToShortString());
+            this.service = null;
+        }
+
+        @Override
+        public void onBindingDied(ComponentName name) {
+            logd("Binding died from config app: " + name.flattenToShortString());
+            this.service = null;
+        }
+
+        @Override
+        public void onNullBinding(ComponentName name) {
+            logd("Null binding from config app: " + name.flattenToShortString());
             this.service = null;
         }
     }
@@ -1111,8 +1290,9 @@
             String action = intent.getAction();
             boolean replace = intent.getBooleanExtra(Intent.EXTRA_REPLACING, false);
             // If replace is true, only care ACTION_PACKAGE_REPLACED.
-            if (replace && !Intent.ACTION_PACKAGE_REPLACED.equals(action))
+            if (replace && !Intent.ACTION_PACKAGE_REPLACED.equals(action)) {
                 return;
+            }
 
             switch (action) {
                 case Intent.ACTION_BOOT_COMPLETED:
@@ -1134,11 +1314,15 @@
         }
     }
 
-    private void log(String msg) {
+    private void logd(String msg) {
         Log.d(LOG_TAG, msg);
     }
 
-    private void logWithLocalLog(String msg) {
+    private void logd(String msg, Throwable tr) {
+        Log.d(LOG_TAG, msg, tr);
+    }
+
+    private void logdWithLocalLog(String msg) {
         Log.d(LOG_TAG, msg);
         mCarrierConfigLoadingLog.log(msg);
     }
diff --git a/src/com/android/phone/CdmaOptions.java b/src/com/android/phone/CdmaOptions.java
deleted file mode 100644
index 1dc4a09..0000000
--- a/src/com/android/phone/CdmaOptions.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * 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.Intent;
-import android.os.PersistableBundle;
-import android.os.SystemProperties;
-import android.preference.Preference;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
-import android.provider.Settings;
-import android.telephony.CarrierConfigManager;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-
-/**
- * List of Phone-specific settings screens.
- */
-public class CdmaOptions {
-    private static final String LOG_TAG = "CdmaOptions";
-
-    private CarrierConfigManager mCarrierConfigManager;
-    private CdmaSystemSelectListPreference mButtonCdmaSystemSelect;
-    private CdmaSubscriptionListPreference mButtonCdmaSubscription;
-    private RestrictedPreference mButtonAPNExpand;
-    private Preference mCategoryAPNExpand;
-    private Preference mButtonCarrierSettings;
-
-    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_CARRIER_SETTINGS_KEY = "carrier_settings_key";
-    private static final String BUTTON_APN_EXPAND_KEY = "button_cdma_apn_key";
-    private static final String CATEGORY_APN_EXPAND_KEY = "category_cdma_apn_key";
-
-    private PreferenceFragment mPrefFragment;
-    private PreferenceScreen mPrefScreen;
-    private int mSubId;
-
-    public CdmaOptions(PreferenceFragment prefFragment, PreferenceScreen prefScreen, int subId) {
-        mPrefFragment = prefFragment;
-        mPrefScreen = prefScreen;
-        mPrefFragment.addPreferencesFromResource(R.xml.cdma_options);
-        mCarrierConfigManager = new CarrierConfigManager(prefFragment.getContext());
-
-        // Initialize preferences.
-        mButtonCdmaSystemSelect = (CdmaSystemSelectListPreference) mPrefScreen
-                .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY);
-        mButtonCdmaSubscription = (CdmaSubscriptionListPreference) mPrefScreen
-                .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY);
-        mButtonCarrierSettings = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
-        mButtonAPNExpand = (RestrictedPreference) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
-        mCategoryAPNExpand = mPrefScreen.findPreference(CATEGORY_APN_EXPAND_KEY);
-
-        updateSubscriptionId(subId);
-    }
-
-    protected void updateSubscriptionId(int subId) {
-        mSubId = subId;
-        int phoneType = TelephonyManager.from(mPrefFragment.getContext())
-                .createForSubscriptionId(mSubId).getPhoneType();
-
-        PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-        // Some CDMA carriers want the APN settings.
-        boolean addAPNExpand = shouldAddApnExpandPreference(phoneType, carrierConfig);
-        boolean addCdmaSubscription =
-                deviceSupportsNvAndRuim();
-        // Read platform settings for carrier settings
-        boolean addCarrierSettings =
-                carrierConfig.getBoolean(CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL);
-
-        mPrefScreen.addPreference(mButtonCdmaSystemSelect);
-        mButtonCdmaSystemSelect.setEnabled(true);
-
-        // Making no assumptions of whether they are added or removed at this point.
-        // Calling add or remove explicitly to make sure they are updated.
-
-        if (addAPNExpand) {
-            log("update: addAPNExpand");
-            mButtonAPNExpand.setDisabledByAdmin(
-                    MobileNetworkSettings.isDpcApnEnforced(mButtonAPNExpand.getContext())
-                            ? RestrictedLockUtilsInternal.getDeviceOwner(
-                                    mButtonAPNExpand.getContext())
-                            : null);
-            mButtonAPNExpand.setOnPreferenceClickListener(
-                    new Preference.OnPreferenceClickListener() {
-                        @Override
-                        public boolean onPreferenceClick(Preference preference) {
-                            MetricsLogger.action(mButtonAPNExpand.getContext(),
-                                    MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS);
-                            // We need to build the Intent by hand as the Preference Framework
-                            // does not allow to add an Intent with some extras into a Preference
-                            // XML file
-                            final Intent intent = new Intent(Settings.ACTION_APN_SETTINGS);
-                            // This will setup the Home and Search affordance
-                            intent.putExtra(":settings:show_fragment_as_subsetting", true);
-                            intent.putExtra("sub_id", mSubId);
-                            mPrefFragment.startActivity(intent);
-                            return true;
-                        }
-                    });
-            mPrefScreen.addPreference(mCategoryAPNExpand);
-        } else {
-            mPrefScreen.removePreference(mCategoryAPNExpand);
-        }
-
-        if (addCdmaSubscription) {
-            log("Both NV and Ruim supported, ENABLE subscription type selection");
-            mPrefScreen.addPreference(mButtonCdmaSubscription);
-            mButtonCdmaSubscription.setEnabled(true);
-        } else {
-            log("Both NV and Ruim NOT supported, REMOVE subscription type selection");
-            mPrefScreen.removePreference(mButtonCdmaSubscription);
-        }
-
-        if (addCarrierSettings) {
-            mPrefScreen.addPreference(mButtonCarrierSettings);
-        } else {
-            mPrefScreen.removePreference(mButtonCarrierSettings);
-        }
-    }
-
-    /**
-     * Return whether we should add the APN expandable preference based on the phone type and
-     * carrier config
-     */
-    @VisibleForTesting
-    public static boolean shouldAddApnExpandPreference(int phoneType, PersistableBundle config) {
-        return phoneType == PhoneConstants.PHONE_TYPE_CDMA
-                && config.getBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL);
-    }
-
-    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/CdmaSubscriptionListPreference.java b/src/com/android/phone/CdmaSubscriptionListPreference.java
deleted file mode 100644
index cd0c681..0000000
--- a/src/com/android/phone/CdmaSubscriptionListPreference.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * 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.Bundle;
-import android.preference.ListPreference;
-import android.provider.Settings;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-
-import com.android.internal.telephony.Phone;
-import com.android.settingslib.utils.ThreadUtils;
-
-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 = Phone.PREFERRED_CDMA_SUBSCRIPTION;
-
-    private TelephonyManager mTelephonyManager;
-
-    public CdmaSubscriptionListPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-
-        mTelephonyManager = TelephonyManager.from(context);
-        setCurrentCdmaSubscriptionModeValue();
-    }
-
-    private void setCurrentCdmaSubscriptionModeValue() {
-        int cdmaSubscriptionMode = Settings.Global.getInt(getContext().getContentResolver(),
-                Settings.Global.CDMA_SUBSCRIPTION_MODE, preferredSubscriptionMode);
-        setValue(Integer.toString(cdmaSubscriptionMode));
-    }
-
-    public CdmaSubscriptionListPreference(Context context) {
-        this(context, null);
-    }
-
-    /**
-     * Sets the subscription id associated with this preference.
-     *
-     * @param subId the subscription id.
-     */
-    public void setSubscriptionId(int subId) {
-        mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(subId);
-    }
-
-    @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.parseInt(getValue());
-        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, update the
-        // mode to the global setting.
-        ThreadUtils.postOnBackgroundThread(() -> {
-            // The subscription mode selected by user.
-            int cdmaSubscriptionMode = Integer.parseInt(getValue());
-
-            boolean isSuccessed = mTelephonyManager.setCdmaSubscriptionMode(
-                    statusCdmaSubscriptionMode);
-
-            // Update the global settings if successed.
-            if (isSuccessed) {
-                Settings.Global.putInt(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
deleted file mode 100644
index 0044a8b..0000000
--- a/src/com/android/phone/CdmaSystemSelectListPreference.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * 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.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.preference.ListPreference;
-import android.provider.Settings;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-
-import com.android.settingslib.utils.ThreadUtils;
-
-public class CdmaSystemSelectListPreference extends ListPreference {
-
-    private static final String LOG_TAG = "CdmaRoamingListPreference";
-    private static final boolean DBG = false;
-
-    private TelephonyManager mTelephonyManager;
-    private MyHandler mHandler = new MyHandler();
-
-    public CdmaSystemSelectListPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-
-        mHandler = new MyHandler();
-        mTelephonyManager = TelephonyManager.from(context);
-    }
-
-    public CdmaSystemSelectListPreference(Context context) {
-        this(context, null);
-    }
-
-    /**
-     * Sets the subscription id associated with this preference.
-     *
-     * @param subId the subscription id.
-     */
-    public void setSubscriptionId(int subId) {
-        mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(subId);
-        queryCdmaRoamingMode();
-    }
-
-    @Override
-    protected void showDialog(Bundle state) {
-        if (!mTelephonyManager.getEmergencyCallbackMode()) {
-            super.showDialog(state);
-        }
-    }
-
-    @Override
-    protected void onDialogClosed(boolean positiveResult) {
-        super.onDialogClosed(positiveResult);
-
-        if (positiveResult && (getValue() != null)) {
-            int buttonCdmaRoamingMode = Integer.parseInt(getValue());
-            int settingsCdmaRoamingMode = Settings.Global.getInt(
-                    getContext().getContentResolver(),
-                    Settings.Global.CDMA_ROAMING_MODE,
-                    TelephonyManager.CDMA_ROAMING_MODE_HOME);
-            if (buttonCdmaRoamingMode != settingsCdmaRoamingMode) {
-                int cdmaRoamingMode = TelephonyManager.CDMA_ROAMING_MODE_ANY;
-                if (buttonCdmaRoamingMode != TelephonyManager.CDMA_ROAMING_MODE_ANY) {
-                    cdmaRoamingMode = TelephonyManager.CDMA_ROAMING_MODE_HOME;
-                }
-                //Set the Settings.Secure network mode
-                Settings.Global.putInt(
-                        getContext().getContentResolver(),
-                        Settings.Global.CDMA_ROAMING_MODE,
-                        buttonCdmaRoamingMode);
-                //Set the roaming preference mode
-                setCdmaRoamingMode(cdmaRoamingMode);
-            }
-        } 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) {
-            int cdmaRoamingMode = msg.arg1;
-
-            if (cdmaRoamingMode != TelephonyManager.CDMA_ROAMING_MODE_RADIO_DEFAULT) {
-                int settingsRoamingMode = Settings.Global.getInt(
-                        getContext().getContentResolver(),
-                        Settings.Global.CDMA_ROAMING_MODE,
-                        TelephonyManager.CDMA_ROAMING_MODE_HOME);
-
-                //check that statusCdmaRoamingMode is from an accepted value
-                if (cdmaRoamingMode == TelephonyManager.CDMA_ROAMING_MODE_HOME
-                        || cdmaRoamingMode == TelephonyManager.CDMA_ROAMING_MODE_ANY) {
-                    //check changes in statusCdmaRoamingMode and updates settingsRoamingMode
-                    if (cdmaRoamingMode != settingsRoamingMode) {
-                        settingsRoamingMode = cdmaRoamingMode;
-                        //changes the Settings.Secure accordingly to statusCdmaRoamingMode
-                        Settings.Global.putInt(
-                                getContext().getContentResolver(),
-                                Settings.Global.CDMA_ROAMING_MODE,
-                                settingsRoamingMode);
-                    }
-                    //changes the mButtonPreferredNetworkMode accordingly to modemNetworkMode
-                    setValue(Integer.toString(cdmaRoamingMode));
-                }
-                else {
-                    if(DBG) Log.i(LOG_TAG, "reset cdma roaming mode to default" );
-                    resetCdmaRoamingModeToDefault();
-                }
-            }
-        }
-
-        private void handleSetCdmaRoamingPreference(Message msg) {
-            boolean isSuccessed = (boolean) msg.obj;
-
-            if (isSuccessed && (getValue() != null)) {
-                int cdmaRoamingMode = Integer.parseInt(getValue());
-                Settings.Global.putInt(
-                        getContext().getContentResolver(),
-                        Settings.Global.CDMA_ROAMING_MODE,
-                        cdmaRoamingMode );
-            } else {
-                queryCdmaRoamingMode();
-            }
-        }
-
-        private void resetCdmaRoamingModeToDefault() {
-            //set the mButtonCdmaRoam
-            setValue(Integer.toString(TelephonyManager.CDMA_ROAMING_MODE_ANY));
-            //set the Settings.System
-            Settings.Global.putInt(
-                    getContext().getContentResolver(),
-                    Settings.Global.CDMA_ROAMING_MODE,
-                    TelephonyManager.CDMA_ROAMING_MODE_ANY);
-            //Set the Status
-            setCdmaRoamingMode(TelephonyManager.CDMA_ROAMING_MODE_ANY);
-        }
-    }
-
-    private void queryCdmaRoamingMode() {
-        ThreadUtils.postOnBackgroundThread(() -> {
-            Message msg = mHandler.obtainMessage(MyHandler.MESSAGE_GET_ROAMING_PREFERENCE);
-            msg.arg1 = mTelephonyManager.getCdmaRoamingMode();
-            msg.sendToTarget();
-        });
-    }
-
-    private void setCdmaRoamingMode(int mode) {
-        ThreadUtils.postOnBackgroundThread(() -> {
-            Message msg = mHandler.obtainMessage(MyHandler.MESSAGE_SET_ROAMING_PREFERENCE);
-            msg.obj = mTelephonyManager.setCdmaRoamingMode(mode);
-            msg.sendToTarget();
-        });
-    }
-}
diff --git a/src/com/android/phone/CellInfoUtil.java b/src/com/android/phone/CellInfoUtil.java
index 8272029..f6d741f 100644
--- a/src/com/android/phone/CellInfoUtil.java
+++ b/src/com/android/phone/CellInfoUtil.java
@@ -33,6 +33,7 @@
 
 import com.android.internal.telephony.OperatorInfo;
 
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -149,7 +150,8 @@
                 mcc,
                 mnc,
                 operatorInfo.getOperatorAlphaLong(),
-                operatorInfo.getOperatorAlphaShort());
+                operatorInfo.getOperatorAlphaShort(),
+                Collections.emptyList());
 
         CellInfoGsm ci = new CellInfoGsm();
         ci.setCellIdentity(cig);
diff --git a/src/com/android/phone/DataUsagePreference.java b/src/com/android/phone/DataUsagePreference.java
deleted file mode 100644
index b6b26e2..0000000
--- a/src/com/android/phone/DataUsagePreference.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2017 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.Context;
-import android.content.Intent;
-import android.net.NetworkTemplate;
-import android.preference.Preference;
-import android.provider.Settings;
-import android.telephony.TelephonyManager;
-import android.text.format.Formatter;
-import android.util.AttributeSet;
-
-import com.android.settingslib.net.DataUsageController;
-
-/**
- * The preference that shows mobile data usage summary and
- * leads to mobile data usage list page.
- */
-public class DataUsagePreference extends Preference {
-
-    private NetworkTemplate mTemplate;
-    private int mSubId;
-
-    public DataUsagePreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    /**
-     * After creating this preference, this functions needs to be called to
-     * initialize which subID it connects to.
-     */
-    public void initialize(int subId) {
-        Activity activity = (Activity) getContext();
-
-        mSubId = subId;
-        mTemplate = getNetworkTemplate(activity, subId);
-
-        DataUsageController controller = new DataUsageController(activity);
-
-        DataUsageController.DataUsageInfo usageInfo = controller.getDataUsageInfo(mTemplate);
-        setSummary(activity.getString(R.string.data_usage_template,
-                Formatter.formatFileSize(activity, usageInfo.usageLevel), usageInfo.period));
-        setIntent(getIntent());
-    }
-
-    @Override
-    public Intent getIntent() {
-        Intent intent = new Intent(Settings.ACTION_MOBILE_DATA_USAGE);
-
-        intent.putExtra(Settings.EXTRA_NETWORK_TEMPLATE, mTemplate);
-        intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
-
-        return intent;
-    }
-
-    private NetworkTemplate getNetworkTemplate(Activity activity, int subId) {
-        TelephonyManager tm = (TelephonyManager) activity
-                .getSystemService(Context.TELEPHONY_SERVICE);
-        NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
-                tm.getSubscriberId(subId));
-        return NetworkTemplate.normalize(mobileAll,
-                tm.getMergedSubscriberIds());
-    }
-}
diff --git a/src/com/android/phone/EmergencyActionGroup.java b/src/com/android/phone/EmergencyActionGroup.java
index b8bf7a8..4961a69 100644
--- a/src/com/android/phone/EmergencyActionGroup.java
+++ b/src/com/android/phone/EmergencyActionGroup.java
@@ -157,21 +157,19 @@
     public void onClick(View v) {
         Intent intent = (Intent) v.getTag(R.id.tag_intent);
 
-        switch (v.getId()) {
-            case R.id.action1:
-            case R.id.action2:
-            case R.id.action3:
-                if (AccessibilityManager.getInstance(mContext).isTouchExplorationEnabled()) {
-                    getContext().startActivity(intent);
-                } else {
-                    revealTheButton(v);
-                }
-                break;
-            case R.id.selected_container:
-                if (!mHiding) {
-                    getContext().startActivity(intent);
-                }
-                break;
+        if (v.getId() == R.id.action1 || v.getId() == R.id.action2 || v.getId() == R.id.action3) {
+            AccessibilityManager accessibilityMgr =
+                    (AccessibilityManager) getContext().getSystemService(
+                            Context.ACCESSIBILITY_SERVICE);
+            if (accessibilityMgr.isTouchExplorationEnabled()) {
+                getContext().startActivity(intent);
+            } else {
+                revealTheButton(v);
+            }
+        } else if (v.getId() == R.id.selected_container) {
+            if (!mHiding) {
+                getContext().startActivity(intent);
+            }
         }
     }
 
diff --git a/src/com/android/phone/EmergencyAssistanceHelper.java b/src/com/android/phone/EmergencyAssistanceHelper.java
index 33788d3..79ee515 100644
--- a/src/com/android/phone/EmergencyAssistanceHelper.java
+++ b/src/com/android/phone/EmergencyAssistanceHelper.java
@@ -31,8 +31,6 @@
 import android.text.TextUtils;
 import android.util.Log;
 
-import com.android.internal.util.CollectionUtils;
-
 import java.util.List;
 
 /**
@@ -120,8 +118,9 @@
     private static String getDefaultEmergencyPackage(Context context) {
         long identity = Binder.clearCallingIdentity();
         try {
-            return CollectionUtils.firstOrNull(context.getSystemService(RoleManager.class)
-                    .getRoleHolders(RoleManager.ROLE_EMERGENCY));
+            List<String> roleHolders = context.getSystemService(RoleManager.class)
+                    .getRoleHolders(RoleManager.ROLE_EMERGENCY);
+            return roleHolders.isEmpty() ? null : roleHolders.get(0);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
diff --git a/src/com/android/phone/EmergencyCallbackModeExitDialog.java b/src/com/android/phone/EmergencyCallbackModeExitDialog.java
index e602b34..6edc155 100644
--- a/src/com/android/phone/EmergencyCallbackModeExitDialog.java
+++ b/src/com/android/phone/EmergencyCallbackModeExitDialog.java
@@ -68,6 +68,7 @@
     private boolean mInEmergencyCall = false;
     private static final int ECM_TIMER_RESET = 1;
     private Phone mPhone = null;
+    private boolean mIsResumed = false;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -100,6 +101,18 @@
     }
 
     @Override
+    public void onResume() {
+        super.onResume();
+        mIsResumed = true;
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        mIsResumed = false;
+    }
+
+    @Override
     public void onDestroy() {
         super.onDestroy();
         try {
@@ -176,7 +189,7 @@
      * Shows Emergency Callback Mode dialog and starts countdown timer
      */
     private void showEmergencyCallbackModeExitDialog() {
-        if (this.isDestroyed()) {
+        if (!mIsResumed) {
             Log.w(TAG, "Tried to show dialog, but activity was already finished");
             return;
         }
@@ -287,8 +300,14 @@
             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);
+                boolean shouldRestrictData = mPhone.getImsPhone() != null
+                        && mPhone.getImsPhone().isInImsEcm();
+                return String.format(getResources().getQuantityText(
+                        // During IMS ECM, data restriction hint should be removed.
+                        shouldRestrictData
+                        ? R.plurals.alert_dialog_exit_ecm_without_data_restriction_hint
+                        : R.plurals.alert_dialog_exit_ecm,
+                        minutes).toString(), time);
         }
         return null;
     }
diff --git a/src/com/android/phone/EmergencyCallbackModeService.java b/src/com/android/phone/EmergencyCallbackModeService.java
index a07f7aa..6b247bd 100644
--- a/src/com/android/phone/EmergencyCallbackModeService.java
+++ b/src/com/android/phone/EmergencyCallbackModeService.java
@@ -30,13 +30,14 @@
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Message;
-import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.sysprop.TelephonyProperties;
+import android.telephony.TelephonyManager;
 import android.util.Log;
 
 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 com.android.internal.telephony.util.NotificationChannelController;
 
 import java.text.SimpleDateFormat;
@@ -50,7 +51,7 @@
 public class EmergencyCallbackModeService extends Service {
 
     // Default Emergency Callback Mode timeout value
-    private static final int DEFAULT_ECM_EXIT_TIMER_VALUE = 300000;
+    private static final long DEFAULT_ECM_EXIT_TIMER_VALUE = 300000L;
     private static final String LOG_TAG = "EmergencyCallbackModeService";
 
     private NotificationManager mNotificationManager = null;
@@ -106,7 +107,8 @@
             mPhone.unregisterForEcmTimerReset(mHandler);
 
             // Cancel the notification and timer
-            mNotificationManager.cancel(R.string.phone_in_ecm_notification_title);
+            mNotificationManager.cancelAsUser(null, R.string.phone_in_ecm_notification_title,
+                    UserHandle.ALL);
             mTimer.cancel();
         }
     }
@@ -120,7 +122,7 @@
             // 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) {
+                if (!intent.getBooleanExtra(TelephonyManager.EXTRA_PHONE_IN_ECM_STATE, false)) {
                     stopSelf();
                 }
             }
@@ -139,8 +141,7 @@
      */
     private void startTimerNotification() {
         // Get Emergency Callback Mode timeout value
-        long ecmTimeout = SystemProperties.getLong(
-                    TelephonyProperties.PROPERTY_ECM_EXIT_TIMER, DEFAULT_ECM_EXIT_TIMER_VALUE);
+        long ecmTimeout = TelephonyProperties.ecm_exit_timer().orElse(DEFAULT_ECM_EXIT_TIMER_VALUE);
 
         // Show the notification
         showNotification(ecmTimeout);
@@ -196,7 +197,11 @@
         // Format notification string
         String text = null;
         if(mInEmergencyCall) {
-            text = getText(R.string.phone_in_ecm_call_notification_text).toString();
+            text = getText(
+                    // During IMS ECM, data restriction hint should be removed.
+                    (imsPhone != null && imsPhone.isInImsEcm())
+                    ? R.string.phone_in_ecm_call_notification_text_without_data_restriction_hint
+                    : R.string.phone_in_ecm_call_notification_text).toString();
         } else {
             // Calculate the time in ms when the notification will be finished.
             long finishedCountMs = millisUntilFinished + System.currentTimeMillis();
@@ -207,14 +212,19 @@
 
             String completeTime = SimpleDateFormat.getTimeInstance(SimpleDateFormat.SHORT).format(
                     finishedCountMs);
-            text = getResources().getString(R.string.phone_in_ecm_notification_complete_time,
+            text = getResources().getString(
+                    // During IMS ECM, data restriction hint should be removed.
+                    (imsPhone != null && imsPhone.isInImsEcm())
+                    ? R.string.phone_in_ecm_notification_complete_time_without_data_restriction_hint
+                    : R.string.phone_in_ecm_notification_complete_time,
                     completeTime);
         }
         builder.setContentText(text);
         builder.setChannelId(NotificationChannelController.CHANNEL_ID_ALERT);
 
         // Show notification
-        mNotificationManager.notify(R.string.phone_in_ecm_notification_title, builder.build());
+        mNotificationManager.notifyAsUser(null, R.string.phone_in_ecm_notification_title,
+                builder.build(), UserHandle.ALL);
     }
 
     /**
diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
index 03a2e57..c6bac02 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -23,6 +23,7 @@
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.app.WallpaperColors;
 import android.app.WallpaperManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -31,6 +32,7 @@
 import android.database.DataSetObserver;
 import android.graphics.Color;
 import android.graphics.Point;
+import android.graphics.drawable.ColorDrawable;
 import android.media.AudioManager;
 import android.media.ToneGenerator;
 import android.net.Uri;
@@ -38,12 +40,11 @@
 import android.os.Bundle;
 import android.os.PersistableBundle;
 import android.provider.Settings;
-import android.telecom.ParcelableCallAnalytics;
 import android.telecom.PhoneAccount;
 import android.telecom.TelecomManager;
 import android.telephony.CarrierConfigManager;
 import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -68,12 +69,6 @@
 import android.view.accessibility.AccessibilityEvent;
 import android.widget.TextView;
 
-import com.android.internal.colorextraction.ColorExtractor;
-import com.android.internal.colorextraction.ColorExtractor.GradientColors;
-import com.android.internal.colorextraction.drawable.ScrimDrawable;
-import com.android.phone.EmergencyDialerMetricsLogger.DialedFrom;
-import com.android.phone.EmergencyDialerMetricsLogger.PhoneNumberType;
-import com.android.phone.EmergencyDialerMetricsLogger.UiModeErrorCode;
 import com.android.phone.common.dialpad.DialpadKeyButton;
 import com.android.phone.common.util.ViewUtil;
 import com.android.phone.common.widget.ResizingTextEditText;
@@ -100,7 +95,8 @@
  */
 public class EmergencyDialer extends Activity implements View.OnClickListener,
         View.OnLongClickListener, View.OnKeyListener, TextWatcher,
-        DialpadKeyButton.OnPressedListener, ColorExtractor.OnColorsChangedListener,
+        DialpadKeyButton.OnPressedListener,
+        WallpaperManager.OnColorsChangedListener,
         EmergencyShortcutButton.OnConfirmClickListener,
         EmergencyInfoGroup.OnConfirmClickListener {
 
@@ -212,8 +208,7 @@
     private String mLastNumber; // last number we tried to dial. Used to restore error dialog.
 
     // Background gradient
-    private ColorExtractor mColorExtractor;
-    private ScrimDrawable mBackgroundDrawable;
+    private ColorDrawable mBackgroundDrawable;
     private boolean mSupportsDarkText;
 
     private boolean mIsWfcEmergencyCallingWarningEnabled;
@@ -222,8 +217,6 @@
     private int mEntryType;
     private ShortcutViewUtils.Config mShortcutViewConfig;
 
-    private EmergencyDialerMetricsLogger mMetricsLogger;
-
     @Override
     public void beforeTextChanged(CharSequence s, int start, int count, int after) {
         // Do nothing
@@ -258,8 +251,6 @@
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
-        mMetricsLogger = new EmergencyDialerMetricsLogger(this);
-
         mEntryType = getIntent().getIntExtra(EXTRA_ENTRY_TYPE, ENTRY_TYPE_UNKNOWN);
         Log.d(LOG_TAG, "Launched from " + entryTypeToString(mEntryType));
 
@@ -276,15 +267,13 @@
         Log.d(LOG_TAG, "Enable emergency dialer shortcut: "
                 + mShortcutViewConfig.isEnabled());
 
-        mColorExtractor = new ColorExtractor(this);
-
         if (mShortcutViewConfig.isEnabled()) {
             // Shortcut view doesn't support dark text theme.
             updateTheme(false);
         } else {
-            GradientColors lockScreenColors = mColorExtractor.getColors(WallpaperManager.FLAG_LOCK,
-                    ColorExtractor.TYPE_EXTRA_DARK);
-            updateTheme(lockScreenColors.supportsDarkText());
+            WallpaperColors wallpaperColors =
+                    getWallpaperManager().getWallpaperColors(WallpaperManager.FLAG_LOCK);
+            updateTheme(supportsDarkText(wallpaperColors));
         }
 
         setContentView(R.layout.emergency_dialer);
@@ -298,7 +287,7 @@
         mDefaultDigitsTextSize = mDigits.getScaledTextSize();
         maybeAddNumberFormatting();
 
-        mBackgroundDrawable = new ScrimDrawable();
+        mBackgroundDrawable = new ColorDrawable();
         Point displaySize = new Point();
         ((WindowManager) getSystemService(Context.WINDOW_SERVICE))
                 .getDefaultDisplay().getSize(displaySize);
@@ -471,16 +460,15 @@
 
     @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;
+        if (view.getId()
+                == 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;
+            }
         }
         return false;
     }
@@ -501,11 +489,7 @@
         if (!TextUtils.isEmpty(phoneNumber)) {
             if (DBG) Log.d(LOG_TAG, "dial emergency number: " + Rlog.pii(LOG_TAG, phoneNumber));
 
-            // Write metrics when user has intention to make a call from a shortcut button.
-            mMetricsLogger.logPlaceCall(DialedFrom.SHORTCUT, PhoneNumberType.HAS_SHORTCUT,
-                    mShortcutViewConfig.getPhoneInfo());
-
-            placeCall(phoneNumber, ParcelableCallAnalytics.CALL_SOURCE_EMERGENCY_SHORTCUT,
+            placeCall(phoneNumber, TelecomManager.CALL_SOURCE_EMERGENCY_SHORTCUT,
                     mShortcutViewConfig.getPhoneInfo());
         } else {
             Log.d(LOG_TAG, "emergency number is empty");
@@ -524,27 +508,22 @@
 
     @Override
     public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.deleteButton: {
-                keyPressed(KeyEvent.KEYCODE_DEL);
-                return;
+        if (view.getId() == R.id.deleteButton) {
+            keyPressed(KeyEvent.KEYCODE_DEL);
+            return;
+        } else if (view.getId() == R.id.floating_action_button) {
+            view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
+            placeCall();
+            return;
+        } else if (view.getId() == R.id.digits) {
+            if (mDigits.length() != 0) {
+                mDigits.setCursorVisible(true);
             }
-            case R.id.floating_action_button: {
-                view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
-                placeCall();
-                return;
-            }
-            case R.id.digits: {
-                if (mDigits.length() != 0) {
-                    mDigits.setCursorVisible(true);
-                }
-                return;
-            }
-            case R.id.floating_action_button_dialpad: {
-                mDigits.getText().clear();
-                switchView(mDialpadView, mEmergencyShortcutView, true);
-                return;
-            }
+            return;
+        } else if (view.getId() == R.id.floating_action_button_dialpad) {
+            mDigits.getText().clear();
+            switchView(mDialpadView, mEmergencyShortcutView, true);
+            return;
         }
     }
 
@@ -553,67 +532,54 @@
         if (!pressed) {
             return;
         }
-        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;
-            }
+        if (view.getId() == R.id.one) {
+            playTone(ToneGenerator.TONE_DTMF_1);
+            keyPressed(KeyEvent.KEYCODE_1);
+            return;
+        } else if (view.getId() == R.id.two) {
+            playTone(ToneGenerator.TONE_DTMF_2);
+            keyPressed(KeyEvent.KEYCODE_2);
+            return;
+        } else if (view.getId() == R.id.three) {
+            playTone(ToneGenerator.TONE_DTMF_3);
+            keyPressed(KeyEvent.KEYCODE_3);
+            return;
+        } else if (view.getId() == R.id.four) {
+            playTone(ToneGenerator.TONE_DTMF_4);
+            keyPressed(KeyEvent.KEYCODE_4);
+            return;
+        } else if (view.getId() == R.id.five) {
+            playTone(ToneGenerator.TONE_DTMF_5);
+            keyPressed(KeyEvent.KEYCODE_5);
+            return;
+        } else if (view.getId() == R.id.six) {
+            playTone(ToneGenerator.TONE_DTMF_6);
+            keyPressed(KeyEvent.KEYCODE_6);
+            return;
+        } else if (view.getId() == R.id.seven) {
+            playTone(ToneGenerator.TONE_DTMF_7);
+            keyPressed(KeyEvent.KEYCODE_7);
+            return;
+        } else if (view.getId() == R.id.eight) {
+            playTone(ToneGenerator.TONE_DTMF_8);
+            keyPressed(KeyEvent.KEYCODE_8);
+            return;
+        } else if (view.getId() == R.id.nine) {
+            playTone(ToneGenerator.TONE_DTMF_9);
+            keyPressed(KeyEvent.KEYCODE_9);
+            return;
+        } else if (view.getId() == R.id.zero) {
+            playTone(ToneGenerator.TONE_DTMF_0);
+            keyPressed(KeyEvent.KEYCODE_0);
+            return;
+        } else if (view.getId() == R.id.pound) {
+            playTone(ToneGenerator.TONE_DTMF_P);
+            keyPressed(KeyEvent.KEYCODE_POUND);
+            return;
+        } else if (view.getId() == R.id.star) {
+            playTone(ToneGenerator.TONE_DTMF_S);
+            keyPressed(KeyEvent.KEYCODE_STAR);
+            return;
         }
     }
 
@@ -623,16 +589,13 @@
     @Override
     public boolean onLongClick(View view) {
         int id = view.getId();
-        switch (id) {
-            case R.id.deleteButton: {
-                mDigits.getText().clear();
-                return true;
-            }
-            case R.id.zero: {
-                removePreviousDigitIfPossible();
-                keyPressed(KeyEvent.KEYCODE_PLUS);
-                return true;
-            }
+        if (id == R.id.deleteButton) {
+            mDigits.getText().clear();
+            return true;
+        } else if (id == R.id.zero) {
+            removePreviousDigitIfPossible();
+            keyPressed(KeyEvent.KEYCODE_PLUS);
+            return true;
         }
         return false;
     }
@@ -641,21 +604,20 @@
     protected void onStart() {
         super.onStart();
 
-        mMetricsLogger.logLaunchEmergencyDialer(mEntryType,
-                mShortcutViewConfig.isEnabled() ? UiModeErrorCode.SUCCESS
-                        : UiModeErrorCode.UNSPECIFIED_ERROR);
-
         if (mShortcutViewConfig.isEnabled()) {
             // Shortcut view doesn't support dark text theme.
-            mBackgroundDrawable.setColor(Color.BLACK, false);
+            mBackgroundDrawable.setColor(Color.BLACK);
             updateTheme(false);
         } else {
-            mColorExtractor.addOnColorsChangedListener(this);
-            GradientColors lockScreenColors = mColorExtractor.getColors(WallpaperManager.FLAG_LOCK,
-                    ColorExtractor.TYPE_EXTRA_DARK);
-            // Do not animate when view isn't visible yet, just set an initial state.
-            mBackgroundDrawable.setColor(lockScreenColors.getMainColor(), false);
-            updateTheme(lockScreenColors.supportsDarkText());
+            WallpaperManager wallpaperManager = getWallpaperManager();
+            if (wallpaperManager.isWallpaperSupported()) {
+                wallpaperManager.addOnColorsChangedListener(this, null);
+            }
+
+            WallpaperColors wallpaperColors =
+                    wallpaperManager.getWallpaperColors(WallpaperManager.FLAG_LOCK);
+            mBackgroundDrawable.setColor(getPrimaryColor(wallpaperColors));
+            updateTheme(supportsDarkText(wallpaperColors));
         }
 
         if (mShortcutViewConfig.isEnabled()) {
@@ -696,7 +658,11 @@
     @Override
     protected void onStop() {
         super.onStop();
-        mColorExtractor.removeOnColorsChangedListener(this);
+
+        WallpaperManager wallpaperManager = getWallpaperManager();
+        if (wallpaperManager.isWallpaperSupported()) {
+            wallpaperManager.removeOnColorsChangedListener(this);
+        }
     }
 
     /**
@@ -741,28 +707,20 @@
         // nothing and just returns input number.
         mLastNumber = PhoneNumberUtils.convertToEmergencyNumber(this, mLastNumber);
 
-        @DialedFrom final int dialedFrom =
-                mShortcutViewConfig.isEnabled() ? DialedFrom.FASTER_LAUNCHER_DIALPAD
-                        : DialedFrom.TRADITIONAL_DIALPAD;
-        @PhoneNumberType final int phoneNumberType;
-
         boolean isEmergencyNumber;
         ShortcutViewUtils.PhoneInfo phoneToMakeCall = null;
         if (mShortcutAdapter != null && mShortcutAdapter.hasShortcut(mLastNumber)) {
             isEmergencyNumber = true;
             phoneToMakeCall = mShortcutViewConfig.getPhoneInfo();
-            phoneNumberType = PhoneNumberType.HAS_SHORTCUT;
         } else if (mShortcutViewConfig.hasPromotedEmergencyNumber(mLastNumber)) {
             // If a number from SIM/network/... is categoried as police/ambulance/fire,
             // hasPromotedEmergencyNumber() will return true, but it maybe not promoted as a
             // shortcut button because a number provided by database has higher priority.
             isEmergencyNumber = true;
             phoneToMakeCall = mShortcutViewConfig.getPhoneInfo();
-            phoneNumberType = PhoneNumberType.NO_SHORTCUT;
         } else {
             isEmergencyNumber = getSystemService(TelephonyManager.class)
                     .isEmergencyNumber(mLastNumber);
-            phoneNumberType = PhoneNumberType.NO_SHORTCUT;
         }
 
         if (isEmergencyNumber) {
@@ -775,19 +733,11 @@
                 return;
             }
 
-            // Write metrics when user has intention to make a call from dialpad
-            mMetricsLogger.logPlaceCall(dialedFrom, phoneNumberType, phoneToMakeCall);
-
-            placeCall(mLastNumber, ParcelableCallAnalytics.CALL_SOURCE_EMERGENCY_DIALPAD,
+            placeCall(mLastNumber, TelecomManager.CALL_SOURCE_EMERGENCY_DIALPAD,
                     phoneToMakeCall);
         } else {
             if (DBG) Log.d(LOG_TAG, "rejecting bad requested number " + mLastNumber);
 
-            // Write metrics when user has intention to make a call of a non-emergency number, even
-            // this number is rejected.
-            mMetricsLogger.logPlaceCall(dialedFrom, PhoneNumberType.NOT_EMERGENCY_NUMBER,
-                    phoneToMakeCall);
-
             showDialog(BAD_EMERGENCY_NUMBER_DIALOG);
         }
         mDigits.getText().delete(0, mDigits.getText().length());
@@ -937,12 +887,10 @@
     }
 
     @Override
-    public void onColorsChanged(ColorExtractor extractor, int which) {
+    public void onColorsChanged(WallpaperColors colors, int which) {
         if ((which & WallpaperManager.FLAG_LOCK) != 0) {
-            GradientColors colors = extractor.getColors(WallpaperManager.FLAG_LOCK,
-                    ColorExtractor.TYPE_EXTRA_DARK);
-            mBackgroundDrawable.setColor(colors.getMainColor(), true /* animated */);
-            updateTheme(colors.supportsDarkText());
+            mBackgroundDrawable.setColor(getPrimaryColor(colors));
+            updateTheme(supportsDarkText(colors));
         }
     }
 
@@ -1223,12 +1171,36 @@
 
     private String callSourceToString(int callSource) {
         switch (callSource) {
-            case ParcelableCallAnalytics.CALL_SOURCE_EMERGENCY_DIALPAD:
+            case TelecomManager.CALL_SOURCE_EMERGENCY_DIALPAD:
                 return "DialPad";
-            case ParcelableCallAnalytics.CALL_SOURCE_EMERGENCY_SHORTCUT:
+            case TelecomManager.CALL_SOURCE_EMERGENCY_SHORTCUT:
                 return "Shortcut";
             default:
                 return "Unknown-" + callSource;
         }
     }
+
+    private WallpaperManager getWallpaperManager() {
+        return getSystemService(WallpaperManager.class);
+    }
+
+    private static boolean supportsDarkText(WallpaperColors colors) {
+        if (colors != null) {
+            return (colors.getColorHints() & WallpaperColors.HINT_SUPPORTS_DARK_TEXT) != 0;
+        }
+        // It's possible that wallpaper colors are null (e.g. when colors are being
+        // processed or a live wallpaper is used). In this case, fallback to same
+        // behavior as when shortcut view is enabled.
+        return false;
+    }
+
+    private static int getPrimaryColor(WallpaperColors colors) {
+        if (colors != null) {
+            return colors.getPrimaryColor().toArgb();
+        }
+        // It's possible that wallpaper colors are null (e.g. when colors are being
+        // processed or a live wallpaper is used). In this case, fallback to same
+        // behavior as when shortcut view is enabled.
+        return Color.BLACK;
+    }
 }
diff --git a/src/com/android/phone/EmergencyDialerMetricsLogger.java b/src/com/android/phone/EmergencyDialerMetricsLogger.java
deleted file mode 100644
index b9ba352..0000000
--- a/src/com/android/phone/EmergencyDialerMetricsLogger.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Copyright (C) 2019 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.annotation.IntDef;
-import android.app.KeyguardManager;
-import android.content.Context;
-import android.metrics.LogMaker;
-import android.os.Build;
-import android.telephony.TelephonyManager;
-import android.util.Log;
-
-import androidx.annotation.Nullable;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * EmergencyCallMetricsLogger is a utility to collect metrics of emergency calls
- */
-class EmergencyDialerMetricsLogger {
-    private static final String LOG_TAG = "EmergencyDialerLogger";
-
-    @IntDef({
-            DialedFrom.TRADITIONAL_DIALPAD,
-            DialedFrom.SHORTCUT,
-            DialedFrom.FASTER_LAUNCHER_DIALPAD,
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    @interface DialedFrom {
-        int TRADITIONAL_DIALPAD = 0;
-        int SHORTCUT = 1;
-        int FASTER_LAUNCHER_DIALPAD = 2;
-    }
-
-    @IntDef({
-            LaunchedFrom.UNDEFINED,
-            LaunchedFrom.LOCK_SCREEN,
-            LaunchedFrom.POWER_KEY_MENU,
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    @interface LaunchedFrom {
-        int UNDEFINED = 0;
-        int LOCK_SCREEN = 1;
-        int POWER_KEY_MENU = 2;
-    }
-
-    @IntDef({
-            PhoneNumberType.HAS_SHORTCUT,
-            PhoneNumberType.NO_SHORTCUT,
-            PhoneNumberType.NOT_EMERGENCY_NUMBER,
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    @interface PhoneNumberType {
-        int HAS_SHORTCUT = 0;
-        int NO_SHORTCUT = 1;
-        int NOT_EMERGENCY_NUMBER = 2;
-    }
-
-    @IntDef({
-            UiModeErrorCode.UNSPECIFIED_ERROR,
-            UiModeErrorCode.SUCCESS,
-            UiModeErrorCode.CONFIG_ENTRY_POINT,
-            UiModeErrorCode.CONFIG_SIM_OPERATOR,
-            UiModeErrorCode.UNSUPPORTED_COUNTRY,
-            UiModeErrorCode.AIRPLANE_MODE,
-            UiModeErrorCode.NO_PROMOTED_NUMBER,
-            UiModeErrorCode.NO_CAPABLE_PHONE,
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    @interface UiModeErrorCode {
-        int UNSPECIFIED_ERROR = -1;
-        int SUCCESS = 0;
-        int CONFIG_ENTRY_POINT = 1;
-        int CONFIG_SIM_OPERATOR = 2;
-        int UNSUPPORTED_COUNTRY = 3;
-        int AIRPLANE_MODE = 4;
-        int NO_PROMOTED_NUMBER = 5;
-        int NO_CAPABLE_PHONE = 6;
-    }
-
-    private class TelephonyInfo {
-        private final String mNetworkCountryIso;
-        private final String mNetworkOperator;
-
-        TelephonyInfo(String networkCountryIso, String networkOperator) {
-            mNetworkCountryIso = networkCountryIso;
-            mNetworkOperator = networkOperator;
-        }
-    }
-
-    private final MetricsLogger mMetricsLogger = new MetricsLogger();
-
-    private final Context mAppContext;
-
-    @LaunchedFrom
-    private int mLaunchedFrom;
-    @UiModeErrorCode
-    private int mUiModeErrorCode;
-
-    EmergencyDialerMetricsLogger(Context context) {
-        mAppContext = context.getApplicationContext();
-    }
-
-    /**
-     * Log when Emergency Dialer is launched.
-     * - Where the user launch Emergency Dialer from.
-     * - Whether shortcut view is enabled, and the reason why it's not enabled.
-     *
-     * @param entryType
-     * @param uiModeErrorCode
-     */
-    public void logLaunchEmergencyDialer(int entryType,
-            @UiModeErrorCode int uiModeErrorCode) {
-        final @EmergencyDialerMetricsLogger.LaunchedFrom int launchedFrom;
-        if (entryType == EmergencyDialer.ENTRY_TYPE_LOCKSCREEN_BUTTON) {
-            launchedFrom = EmergencyDialerMetricsLogger.LaunchedFrom.LOCK_SCREEN;
-        } else if (entryType == EmergencyDialer.ENTRY_TYPE_POWER_MENU) {
-            launchedFrom = EmergencyDialerMetricsLogger.LaunchedFrom.POWER_KEY_MENU;
-        } else {
-            launchedFrom = EmergencyDialerMetricsLogger.LaunchedFrom.UNDEFINED;
-        }
-
-        mLaunchedFrom = launchedFrom;
-        mUiModeErrorCode = uiModeErrorCode;
-    }
-
-    /**
-     * Log when user tring to place an emergency call.
-     * - Which UI (traditional dialpad, shortcut button, dialpad in shortcut view) the user place
-     *   the call from.
-     * - The number is promoted in shortcut view or not, or not even an emergency number?
-     * - Whether the device is locked.
-     * - Network country ISO and network operator.
-     *
-     * @param dialedFrom
-     * @param phoneNumberType
-     * @param phoneInfo
-     */
-    public void logPlaceCall(@DialedFrom int dialedFrom,
-            @PhoneNumberType int phoneNumberType,
-            @Nullable ShortcutViewUtils.PhoneInfo phoneInfo) {
-        TelephonyInfo telephonyInfo = getTelephonyInfo(phoneNumberType, phoneInfo);
-        final KeyguardManager keyguard = mAppContext.getSystemService(KeyguardManager.class);
-
-        logBeforeMakeCall(dialedFrom, phoneNumberType, keyguard.isKeyguardLocked(),
-                telephonyInfo.mNetworkCountryIso, telephonyInfo.mNetworkOperator);
-    }
-
-    private TelephonyInfo getTelephonyInfo(@PhoneNumberType int phoneNumberType,
-            @Nullable ShortcutViewUtils.PhoneInfo phoneInfo) {
-        final TelephonyManager telephonyManager = mAppContext.getSystemService(
-                TelephonyManager.class);
-        final TelephonyManager subTelephonyManager;
-        final String networkCountryIso;
-        final String networkOperator;
-        if (phoneNumberType == PhoneNumberType.HAS_SHORTCUT && phoneInfo != null) {
-            subTelephonyManager = telephonyManager.createForSubscriptionId(phoneInfo.getSubId());
-            networkCountryIso = phoneInfo.getCountryIso();
-        } else {
-            // No specific phone to make this call. Take information of default network.
-            subTelephonyManager = null;
-            networkCountryIso = telephonyManager.getNetworkCountryIso();
-        }
-        if (subTelephonyManager != null) {
-            networkOperator = subTelephonyManager.getNetworkOperator();
-        } else {
-            // This could be:
-            // - No specific phone to make this call.
-            // - Subscription changed! Maybe the device roamed to another network?
-            // Take information of default network.
-            networkOperator = telephonyManager.getNetworkOperator();
-        }
-
-        return new TelephonyInfo(networkCountryIso, networkOperator);
-    }
-
-    private void logBeforeMakeCall(@DialedFrom int dialedFrom,
-            @PhoneNumberType int phoneNumberType,
-            boolean isDeviceLocked,
-            String networkCountryIso,
-            String networkOperator) {
-        if (Log.isLoggable(LOG_TAG, Log.DEBUG)) {
-            Log.d(LOG_TAG, "EmergencyDialer session: dialedFrom=" + dialFromToString(dialedFrom)
-                    + ", launchedFrom=" + launchedFromToString(mLaunchedFrom)
-                    + ", uimode=" + uiModeErrorCodeToString(mUiModeErrorCode)
-                    + ", type=" + phoneNumberTypeToString(phoneNumberType)
-                    + ", locked=" + isDeviceLocked
-                    + ", country=" + networkCountryIso
-                    + ", operator=" + networkOperator);
-        }
-        mMetricsLogger.write(new LogMaker(MetricsEvent.EMERGENCY_DIALER_MAKE_CALL_V2)
-                .setType(MetricsEvent.TYPE_ACTION)
-                .setSubtype(dialedFrom)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_LAUNCH_FROM, mLaunchedFrom)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_UI_MODE_ERROR_CODE,
-                        mUiModeErrorCode)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_PHONE_NUMBER_TYPE,
-                        phoneNumberType)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_IS_DEVICE_LOCKED,
-                        isDeviceLocked ? 1 : 0)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_NETWORK_COUNTRY_ISO,
-                        networkCountryIso)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_NETWORK_OPERATOR,
-                        networkOperator)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_RADIO_VERSION,
-                        Build.getRadioVersion())
-        );
-    }
-
-    private String dialFromToString(@DialedFrom int dialedFrom) {
-        switch (dialedFrom) {
-            case DialedFrom.TRADITIONAL_DIALPAD:
-                return "traditional";
-            case DialedFrom.SHORTCUT:
-                return "shortcut";
-            case DialedFrom.FASTER_LAUNCHER_DIALPAD:
-                return "dialpad";
-            default:
-                return "unknown_error";
-        }
-    }
-
-    private String launchedFromToString(@LaunchedFrom int launchedFrom) {
-        switch (launchedFrom) {
-            case LaunchedFrom.UNDEFINED:
-                return "undefined";
-            case LaunchedFrom.LOCK_SCREEN:
-                return "lockscreen";
-            case LaunchedFrom.POWER_KEY_MENU:
-                return "powermenu";
-            default:
-                return "unknown_error";
-        }
-    }
-
-    private String phoneNumberTypeToString(@PhoneNumberType int phoneNumberType) {
-        switch (phoneNumberType) {
-            case PhoneNumberType.HAS_SHORTCUT:
-                return "has_shortcut";
-            case PhoneNumberType.NO_SHORTCUT:
-                return "no_shortcut";
-            case PhoneNumberType.NOT_EMERGENCY_NUMBER:
-                return "not_emergency";
-            default:
-                return "unknown_error";
-        }
-    }
-
-    private String uiModeErrorCodeToString(@UiModeErrorCode int uiModeErrorCode) {
-        switch (uiModeErrorCode) {
-            case UiModeErrorCode.UNSPECIFIED_ERROR:
-                return "unspecified_error";
-            case UiModeErrorCode.SUCCESS:
-                return "success";
-            case UiModeErrorCode.CONFIG_ENTRY_POINT:
-                return "config_entry_point";
-            case UiModeErrorCode.CONFIG_SIM_OPERATOR:
-                return "config_sim_operator";
-            case UiModeErrorCode.UNSUPPORTED_COUNTRY:
-                return "unsupported_country";
-            case UiModeErrorCode.AIRPLANE_MODE:
-                return "airplane_mode";
-            case UiModeErrorCode.NO_PROMOTED_NUMBER:
-                return "no_promoted_number";
-            case UiModeErrorCode.NO_CAPABLE_PHONE:
-                return "no_capable_phone";
-            default:
-                return "unknown_error";
-        }
-    }
-}
diff --git a/src/com/android/phone/EmergencyInfoGroup.java b/src/com/android/phone/EmergencyInfoGroup.java
index 9f1c906..a62edfd 100644
--- a/src/com/android/phone/EmergencyInfoGroup.java
+++ b/src/com/android/phone/EmergencyInfoGroup.java
@@ -153,7 +153,7 @@
     private Drawable getCircularUserIcon() {
         final UserManager userManager = (UserManager) getContext().getSystemService(
                 Context.USER_SERVICE);
-        Bitmap bitmapUserIcon = userManager.getUserIcon(UserHandle.getCallingUserId());
+        Bitmap bitmapUserIcon = userManager.getUserIcon();
 
         if (bitmapUserIcon == null) {
             // get default user icon.
@@ -207,23 +207,21 @@
 
     @Override
     public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.emergency_info_view:
-                if (AccessibilityManager.getInstance(mContext).isTouchExplorationEnabled()) {
-                    if (mOnConfirmClickListener != null) {
-                        mOnConfirmClickListener.onConfirmClick(this);
-                    }
-                } else {
-                    revealSelectedButton();
-                }
-                break;
-            case R.id.emergency_info_confirm_view:
+        if (view.getId() == R.id.emergency_info_view) {
+            AccessibilityManager accessibilityMgr =
+                    (AccessibilityManager) getContext().getSystemService(
+                            Context.ACCESSIBILITY_SERVICE);
+            if (accessibilityMgr.isTouchExplorationEnabled()) {
                 if (mOnConfirmClickListener != null) {
                     mOnConfirmClickListener.onConfirmClick(this);
                 }
-                break;
-            default:
-                break;
+            } else {
+                revealSelectedButton();
+            }
+        } else if (view.getId() == R.id.emergency_info_confirm_view) {
+            if (mOnConfirmClickListener != null) {
+                mOnConfirmClickListener.onConfirmClick(this);
+            }
         }
     }
 
diff --git a/src/com/android/phone/EmergencyShortcutButton.java b/src/com/android/phone/EmergencyShortcutButton.java
index 59b3794..bfa956c 100644
--- a/src/com/android/phone/EmergencyShortcutButton.java
+++ b/src/com/android/phone/EmergencyShortcutButton.java
@@ -19,8 +19,6 @@
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
 import android.content.Context;
-import android.metrics.LogMaker;
-import android.os.SystemClock;
 import android.util.AttributeSet;
 import android.view.MotionEvent;
 import android.view.View;
@@ -32,9 +30,6 @@
 
 import androidx.annotation.NonNull;
 
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-
 /**
  * Emergency shortcut button displays a local emergency phone number information(including phone
  * number, and phone type). To decrease false clicking, it need to click twice to confirm to place
@@ -66,12 +61,6 @@
 
     private boolean mConfirmViewHiding;
 
-    /**
-     * The time, in millis, since boot when user taps on shortcut button to reveal confirm view.
-     * This is used for metrics when calculating the interval between reveal tap and confirm tap.
-     */
-    private long mTimeOfRevealTapInMillis = 0;
-
     public EmergencyShortcutButton(Context context, AttributeSet attrs) {
         super(context, attrs);
     }
@@ -193,32 +182,23 @@
 
     @Override
     public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.emergency_call_number_info_view:
-                if (AccessibilityManager.getInstance(mContext).isTouchExplorationEnabled()) {
-                    // TalkBack itself includes a prompt to confirm click action implicitly,
-                    // so we don't need an additional confirmation with second tap on button.
-                    if (mOnConfirmClickListener != null) {
-                        mOnConfirmClickListener.onConfirmClick(this);
-                    }
-                } else {
-                    revealSelectedButton();
-                }
-                break;
-            case R.id.emergency_call_confirm_view:
-                if (mTimeOfRevealTapInMillis != 0) {
-                    long timeBetweenTwoTaps =
-                            SystemClock.elapsedRealtime() - mTimeOfRevealTapInMillis;
-                    // Reset reveal time to zero for next reveal-confirm taps pair.
-                    mTimeOfRevealTapInMillis = 0;
-
-                    writeMetricsForConfirmTap(timeBetweenTwoTaps);
-                }
-
+        if (view.getId() == R.id.emergency_call_number_info_view) {
+            AccessibilityManager accessibilityMgr =
+                    (AccessibilityManager) getContext().getSystemService(
+                            Context.ACCESSIBILITY_SERVICE);
+            if (accessibilityMgr.isTouchExplorationEnabled()) {
+                // TalkBack itself includes a prompt to confirm click action implicitly,
+                // so we don't need an additional confirmation with second tap on button.
                 if (mOnConfirmClickListener != null) {
                     mOnConfirmClickListener.onConfirmClick(this);
                 }
-                break;
+            } else {
+                revealSelectedButton();
+            }
+        } else if (view.getId() == R.id.emergency_call_confirm_view) {
+            if (mOnConfirmClickListener != null) {
+                mOnConfirmClickListener.onConfirmClick(this);
+            }
         }
     }
 
@@ -226,7 +206,6 @@
         mConfirmViewHiding = false;
 
         mConfirmView.setVisibility(View.VISIBLE);
-        mTimeOfRevealTapInMillis = SystemClock.elapsedRealtime();
         int centerX = mCallNumberInfoView.getLeft() + mCallNumberInfoView.getWidth() / 2;
         int centerY = mCallNumberInfoView.getTop() + mCallNumberInfoView.getHeight() / 2;
         Animator reveal = ViewAnimationUtils.createCircularReveal(
@@ -263,8 +242,6 @@
             @Override
             public void onAnimationEnd(Animator animation) {
                 mConfirmView.setVisibility(INVISIBLE);
-                // Reset reveal time to zero for next reveal-confirm taps pair.
-                mTimeOfRevealTapInMillis = 0;
             }
         });
         reveal.start();
@@ -279,12 +256,4 @@
             hideSelectedButton();
         }
     };
-
-    private void writeMetricsForConfirmTap(long timeBetweenTwoTaps) {
-        LogMaker logContent = new LogMaker(MetricsEvent.EMERGENCY_DIALER_SHORTCUT_CONFIRM_TAP)
-                .setType(MetricsEvent.TYPE_ACTION)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_SHORTCUT_TAPS_INTERVAL,
-                        timeBetweenTwoTaps);
-        MetricsLogger.action(logContent);
-    }
 }
diff --git a/src/com/android/phone/GsmUmtsCallBarringOptions.java b/src/com/android/phone/GsmUmtsCallBarringOptions.java
index a6f9844..30e9b5c 100644
--- a/src/com/android/phone/GsmUmtsCallBarringOptions.java
+++ b/src/com/android/phone/GsmUmtsCallBarringOptions.java
@@ -27,7 +27,6 @@
 import android.preference.Preference;
 import android.preference.PreferenceScreen;
 import android.telephony.CarrierConfigManager;
-import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.util.Log;
@@ -38,7 +37,6 @@
 import com.android.internal.telephony.CommandsInterface;
 import com.android.internal.telephony.GsmCdmaPhone;
 import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.imsphone.ImsPhone;
 import com.android.phone.settings.fdn.EditPinPreference;
 
 import java.util.ArrayList;
@@ -76,7 +74,6 @@
     private static final String DIALOG_PW_ENTRY_KEY = "dialog_pw_enter_key";
     private static final String KEY_STATUS = "toggle";
     private static final String PREFERENCE_ENABLED_KEY = "PREFERENCE_ENABLED";
-    private static final String PREFERENCE_SHOW_PASSWORD_KEY = "PREFERENCE_SHOW_PASSWORD";
     private static final String SAVED_BEFORE_LOAD_COMPLETED_KEY = "PROGRESS_SHOWING";
 
     private CallBarringEditPreference mButtonBAOC;
@@ -142,16 +139,13 @@
             return;
         }
 
-        String password = null;
-        if (mButtonDisableAll.isPasswordShown()) {
-            password = mButtonDisableAll.getText();
-            // Validate the length of password first, before submitting it to the
-            // RIL for CB disable.
-            if (!validatePassword(password)) {
-                mButtonDisableAll.setText("");
-                displayMessage(R.string.call_barring_right_pwd_number);
-                return;
-            }
+        String password = mButtonDisableAll.getText();
+        // Validate the length of password first, before submitting it to the
+        // RIL for CB disable.
+        if (!validatePassword(password)) {
+            mButtonDisableAll.setText("");
+            displayMessage(R.string.call_barring_right_pwd_number);
+            return;
         }
 
         // Submit the disable all request
@@ -418,36 +412,18 @@
         mPreferences.add(mButtonBAIC);
         mPreferences.add(mButtonBAICr);
 
-        // Find out if password is currently used.
-        boolean usePassword = true;
-        boolean useDisableaAll = true;
-
-        ImsPhone imsPhone = mPhone != null ? (ImsPhone) mPhone.getImsPhone() : null;
-        if (imsPhone != null
-                && ((imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)
-                        || imsPhone.isUtEnabled())) {
-            usePassword = false;
-            useDisableaAll = false;
-        }
-
         // Find out if the sim card is ready.
         boolean isSimReady = TelephonyManager.from(this).getSimState(
                 SubscriptionManager.getSlotIndex(mPhone.getSubId()))
                         == TelephonyManager.SIM_STATE_READY;
 
-        // Deactivate all option is unavailable when sim card is not ready or Ut is enabled.
-        if (isSimReady && useDisableaAll) {
+        // Deactivate all option and Change password option are unavailable
+        // when sim card is not ready.
+        if (isSimReady) {
             mButtonDisableAll.setEnabled(true);
-            mButtonDisableAll.init(mPhone);
-        } else {
-            mButtonDisableAll.setEnabled(false);
-        }
-
-        // Change password option is unavailable when sim card is not ready or when the password is
-        // not used.
-        if (isSimReady && usePassword) {
             mButtonChangePW.setEnabled(true);
         } else {
+            mButtonDisableAll.setEnabled(false);
             mButtonChangePW.setEnabled(false);
             mButtonChangePW.setSummary(R.string.call_barring_change_pwd_description_disabled);
         }
@@ -475,8 +451,6 @@
                     pref.handleCallBarringResult(bundle.getBoolean(KEY_STATUS));
                     pref.init(this, true, mPhone);
                     pref.setEnabled(bundle.getBoolean(PREFERENCE_ENABLED_KEY, pref.isEnabled()));
-                    pref.setInputMethodNeeded(bundle.getBoolean(PREFERENCE_SHOW_PASSWORD_KEY,
-                            pref.needInputMethod()));
                 }
             }
             mPwChangeState = mIcicle.getInt(PW_CHANGE_STATE_KEY);
@@ -516,7 +490,6 @@
             Bundle bundle = new Bundle();
             bundle.putBoolean(KEY_STATUS, pref.mIsActivated);
             bundle.putBoolean(PREFERENCE_ENABLED_KEY, pref.isEnabled());
-            bundle.putBoolean(PREFERENCE_SHOW_PASSWORD_KEY, pref.needInputMethod());
             outState.putParcelable(pref.getKey(), bundle);
         }
         outState.putInt(PW_CHANGE_STATE_KEY, mPwChangeState);
diff --git a/src/com/android/phone/GsmUmtsCallForwardOptions.java b/src/com/android/phone/GsmUmtsCallForwardOptions.java
index b8ea8fd..10bd8d7 100644
--- a/src/com/android/phone/GsmUmtsCallForwardOptions.java
+++ b/src/com/android/phone/GsmUmtsCallForwardOptions.java
@@ -18,6 +18,7 @@
 import java.util.ArrayList;
 
 public class GsmUmtsCallForwardOptions extends TimeConsumingPreferenceActivity {
+    private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
     private static final String LOG_TAG = "GsmUmtsCallForwardOptions";
 
     private static final String NUM_PROJECTION[] = {
@@ -62,6 +63,7 @@
         mPhone = mSubscriptionInfoHelper.getPhone();
 
         PersistableBundle b = null;
+        boolean supportCFNRc = true;
         if (mSubscriptionInfoHelper.hasSubId()) {
             b = PhoneGlobals.getInstance().getCarrierConfigForSubId(
                     mSubscriptionInfoHelper.getSubId());
@@ -73,6 +75,8 @@
                     CarrierConfigManager.KEY_CALL_FORWARDING_MAP_NON_NUMBER_TO_VOICEMAIL_BOOL);
             mCallForwardByUssd = b.getBoolean(
                     CarrierConfigManager.KEY_USE_CALL_FORWARDING_USSD_BOOL);
+            supportCFNRc = b.getBoolean(
+                    CarrierConfigManager.KEY_CALL_FORWARDING_WHEN_UNREACHABLE_SUPPORTED_BOOL);
         }
 
         PreferenceScreen prefSet = getPreferenceScreen();
@@ -89,7 +93,16 @@
         mPreferences.add(mButtonCFU);
         mPreferences.add(mButtonCFB);
         mPreferences.add(mButtonCFNRy);
-        mPreferences.add(mButtonCFNRc);
+
+        if (supportCFNRc) {
+            mPreferences.add(mButtonCFNRc);
+        } else {
+            // When CFNRc is not supported, mButtonCFNRc is grayed out from the menu.
+            // Default state for the preferences in this PreferenceScreen is disabled.
+            // Only preferences listed in the ArrayList mPreferences will be enabled.
+            // By not adding mButtonCFNRc to mPreferences it will be kept disabled.
+            if (DBG) Log.d(LOG_TAG, "onCreate: CFNRc is not supported, grey out the item.");
+        }
 
         if (mCallForwardByUssd) {
             //the call forwarding ussd command's behavior is similar to the call forwarding when
diff --git a/src/com/android/phone/GsmUmtsOptions.java b/src/com/android/phone/GsmUmtsOptions.java
deleted file mode 100644
index 7f6207b..0000000
--- a/src/com/android/phone/GsmUmtsOptions.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * 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.os.PersistableBundle;
-import android.preference.Preference;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
-import android.provider.Settings;
-import android.telephony.CarrierConfigManager;
-import android.telephony.TelephonyManager;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-
-/**
- * List of Network-specific settings screens.
- */
-public class GsmUmtsOptions {
-    private static final String LOG_TAG = "GsmUmtsOptions";
-
-    private CarrierConfigManager mCarrierConfigManager;
-    private RestrictedPreference mButtonAPNExpand;
-    private Preference mCategoryAPNExpand;
-    Preference mCarrierSettingPref;
-
-    private NetworkOperators mNetworkOperator;
-
-    private static final String BUTTON_APN_EXPAND_KEY = "button_gsm_apn_key";
-    private static final String CATEGORY_APN_EXPAND_KEY = "category_gsm_apn_key";
-    private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
-
-    public static final String EXTRA_SUB_ID = "sub_id";
-    private PreferenceFragment mPrefFragment;
-    private PreferenceScreen mPrefScreen;
-
-    public GsmUmtsOptions(PreferenceFragment prefFragment, PreferenceScreen prefScreen,
-            final int subId) {
-        final Context context = prefFragment.getContext();
-        mPrefFragment = prefFragment;
-        mPrefScreen = prefScreen;
-        mCarrierConfigManager = new CarrierConfigManager(context);
-        mPrefFragment.addPreferencesFromResource(R.xml.gsm_umts_options);
-        mButtonAPNExpand = (RestrictedPreference) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
-        mCategoryAPNExpand = mPrefScreen.findPreference(CATEGORY_APN_EXPAND_KEY);
-        mNetworkOperator = (NetworkOperators) mPrefScreen
-                .findPreference(NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
-        mCarrierSettingPref = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
-
-        mNetworkOperator.initialize();
-
-        update(subId);
-    }
-
-    // Unlike mPrefFragment or mPrefScreen, subId  may change during lifecycle of GsmUmtsOptions.
-    // When that happens, we update GsmUmtsOptions with new parameters.
-    protected void update(final int subId) {
-        boolean addAPNExpand = true;
-        boolean addNetworkOperatorsCategory = true;
-        boolean addCarrierSettings = true;
-        final TelephonyManager telephonyManager = TelephonyManager.from(mPrefFragment.getContext())
-                .createForSubscriptionId(subId);
-        if (telephonyManager.getPhoneType() != PhoneConstants.PHONE_TYPE_GSM) {
-            log("Not a GSM phone");
-            addAPNExpand = false;
-            mNetworkOperator.setEnabled(false);
-        } else {
-            log("Not a CDMA phone");
-            PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
-
-            // Determine which options to display. For GSM these are defaulted to true in
-            // CarrierConfigManager, but they maybe overriden by DefaultCarrierConfigService or a
-            // carrier app.
-            // Note: these settings used to be controlled with overlays in
-            // Telephony/res/values/config.xml
-            if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_APN_EXPAND_BOOL)
-                    && mCategoryAPNExpand != null) {
-                addAPNExpand = false;
-            }
-            if (!carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL)) {
-                addNetworkOperatorsCategory = false;
-            }
-
-            if (carrierConfig.getBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL)) {
-                if (telephonyManager.isManualNetworkSelectionAllowed()) {
-                    log("[CSP] Enabling Operator Selection menu.");
-                    mNetworkOperator.setEnabled(true);
-                } else {
-                    log("[CSP] Disabling Operator Selection menu.");
-                    addNetworkOperatorsCategory = false;
-                }
-            }
-
-            // Read platform settings for carrier settings
-            addCarrierSettings = carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL);
-        }
-
-        // Making no assumptions of whether they are added or removed at this point.
-        // Calling add or remove explicitly to make sure they are updated.
-
-        if (addAPNExpand) {
-            log("update: addAPNExpand");
-            mButtonAPNExpand.setDisabledByAdmin(
-                    MobileNetworkSettings.isDpcApnEnforced(mButtonAPNExpand.getContext())
-                            ? RestrictedLockUtilsInternal.getDeviceOwner(
-                                    mButtonAPNExpand.getContext())
-                            : null);
-            mButtonAPNExpand.setOnPreferenceClickListener(
-                    new Preference.OnPreferenceClickListener() {
-                        @Override
-                        public boolean onPreferenceClick(Preference preference) {
-                            MetricsLogger.action(mButtonAPNExpand.getContext(),
-                                    MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS);
-                            // We need to build the Intent by hand as the Preference Framework
-                            // does not allow to add an Intent with some extras into a Preference
-                            // XML file
-                            final Intent intent = new Intent(Settings.ACTION_APN_SETTINGS);
-                            // This will setup the Home and Search affordance
-                            intent.putExtra(":settings:show_fragment_as_subsetting", true);
-                            intent.putExtra(EXTRA_SUB_ID, subId);
-                            mPrefFragment.startActivity(intent);
-                            return true;
-                        }
-                    });
-            mPrefScreen.addPreference(mCategoryAPNExpand);
-        } else {
-            mPrefScreen.removePreference(mCategoryAPNExpand);
-        }
-
-        if (addNetworkOperatorsCategory) {
-            mPrefScreen.addPreference(mNetworkOperator);
-            mNetworkOperator.update(subId);
-        } else {
-            mPrefScreen.removePreference(mNetworkOperator);
-        }
-
-        if (addCarrierSettings) {
-            mPrefScreen.addPreference(mCarrierSettingPref);
-        } else {
-            mPrefScreen.removePreference(mCarrierSettingPref);
-        }
-
-    }
-
-    protected boolean preferenceTreeClick(Preference preference) {
-        return mNetworkOperator.preferenceTreeClick(preference);
-    }
-
-    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
deleted file mode 100644
index f65c971..0000000
--- a/src/com/android/phone/INetworkQueryService.aidl
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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 Phone 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.
-     *
-     * It will send the network query with the use of
-     * <code>TelephonyManager.requestNetworkScan()</code> if the
-     * isIncrementalResult is true. And if the isIncrementalResult
-     * is set as false, it will try to send network query through
-     * <code>Phone.getAvailableNetworks()</code>.
-     */
-    void startNetworkQuery(in INetworkQueryServiceCallback cb, in int phoneId, boolean isIncrementalResult);
-
-    /**
-     * 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();
-
-    /**
-     * Tells the service to unregister the network query callback.
-     * Will not attempt to stop an ongoing network query.
-     * Functionally may be the same as stopNetworkQuery since that
-     * function also does not stop a query request in the underlying
-     * RIL.
-     */
-    void unregisterCallback(in INetworkQueryServiceCallback cb);
-}
diff --git a/src/com/android/phone/INetworkQueryServiceCallback.aidl b/src/com/android/phone/INetworkQueryServiceCallback.aidl
deleted file mode 100644
index 2299f5e..0000000
--- a/src/com/android/phone/INetworkQueryServiceCallback.aidl
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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.telephony.CellInfo;
-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 {
-
-    /**
-     * Returns the scan results to the user, this callback will be
-     * called at least one time.
-     */
-    void onResults(in List<CellInfo> results);
-
-    /**
-     * Informs the user that the scan has stopped.
-     *
-     * This callback will be called when the scan is finished or cancelled by the user.
-     * The related NetworkScanRequest will be deleted after this callback.
-     */
-    void onComplete();
-
-    /**
-     * Informs the user that there is some error about the scan.
-     *
-     * This callback will be called whenever there is any error about the scan,
-     * and the scan will be terminated. onComplete() will NOT be called.
-     */
-    void onError(int error);
-
-}
diff --git a/src/com/android/phone/IccPanel.java b/src/com/android/phone/IccPanel.java
index be182233..73dd8bc 100644
--- a/src/com/android/phone/IccPanel.java
+++ b/src/com/android/phone/IccPanel.java
@@ -74,13 +74,13 @@
     @Override
     protected void onStart() {
         super.onStart();
-        mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);
+        mStatusBarManager.setDisabledForSimNetworkLock(true);
     }
 
     @Override
     public void onStop() {
         super.onStop();
-        mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
+        mStatusBarManager.setDisabledForSimNetworkLock(false);
     }
 
     public boolean onKeyDown(int keyCode, KeyEvent event) {
diff --git a/src/com/android/phone/ImsRcsController.java b/src/com/android/phone/ImsRcsController.java
new file mode 100644
index 0000000..dcae24b
--- /dev/null
+++ b/src/com/android/phone/ImsRcsController.java
@@ -0,0 +1,393 @@
+/*
+ * Copyright (C) 2019 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.net.Uri;
+import android.os.Binder;
+import android.os.RemoteException;
+import android.os.ServiceSpecificException;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyFrameworkInitializer;
+import android.telephony.ims.ImsException;
+import android.telephony.ims.RegistrationManager;
+import android.telephony.ims.aidl.IImsCapabilityCallback;
+import android.telephony.ims.aidl.IImsRcsController;
+import android.telephony.ims.aidl.IImsRegistrationCallback;
+import android.telephony.ims.aidl.IRcsUceControllerCallback;
+import android.telephony.ims.feature.RcsFeature;
+import android.telephony.ims.stub.ImsRegistrationImplBase;
+import android.util.Log;
+
+import com.android.ims.ImsManager;
+import com.android.internal.telephony.IIntegerConsumer;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.TelephonyPermissions;
+import com.android.internal.telephony.imsphone.ImsPhone;
+import com.android.services.telephony.rcs.RcsFeatureController;
+import com.android.services.telephony.rcs.TelephonyRcsService;
+import com.android.services.telephony.rcs.UserCapabilityExchangeImpl;
+
+import java.util.List;
+
+/**
+ * Implementation of the IImsRcsController interface.
+ */
+public class ImsRcsController extends IImsRcsController.Stub {
+    private static final String TAG = "ImsRcsController";
+
+    /** The singleton instance. */
+    private static ImsRcsController sInstance;
+
+    private PhoneGlobals mApp;
+    private TelephonyRcsService mRcsService;
+
+    /**
+     * Initialize the singleton ImsRcsController instance.
+     * This is only done once, at startup, from PhoneApp.onCreate().
+     */
+    static ImsRcsController init(PhoneGlobals app) {
+        synchronized (ImsRcsController.class) {
+            if (sInstance == null) {
+                sInstance = new ImsRcsController(app);
+            } else {
+                Log.wtf(TAG, "init() called multiple times!  sInstance = " + sInstance);
+            }
+            return sInstance;
+        }
+    }
+
+    /** Private constructor; @see init() */
+    private ImsRcsController(PhoneGlobals app) {
+        Log.i(TAG, "ImsRcsController");
+        mApp = app;
+        TelephonyFrameworkInitializer
+                .getTelephonyServiceManager().getTelephonyImsServiceRegisterer().register(this);
+    }
+
+    /**
+     * Register a {@link RegistrationManager.RegistrationCallback} to receive IMS network
+     * registration state.
+     */
+    @Override
+    public void registerImsRegistrationCallback(int subId, IImsRegistrationCallback callback) {
+        enforceReadPrivilegedPermission("registerImsRegistrationCallback");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            getRcsFeatureController(subId).registerImsRegistrationCallback(subId, callback);
+        } catch (ImsException e) {
+            Log.e(TAG, "registerImsRegistrationCallback: sudId=" + subId + ", " + e.getMessage());
+            throw new ServiceSpecificException(e.getCode());
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Removes an existing {@link RegistrationManager.RegistrationCallback}.
+     */
+    @Override
+    public void unregisterImsRegistrationCallback(int subId, IImsRegistrationCallback callback) {
+        enforceReadPrivilegedPermission("unregisterImsRegistrationCallback");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            getRcsFeatureController(subId).unregisterImsRegistrationCallback(subId, callback);
+        } catch (ServiceSpecificException e) {
+            Log.e(TAG, "unregisterImsRegistrationCallback: error=" + e.errorCode);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Get the IMS service registration state for the RcsFeature associated with this sub id.
+     */
+    @Override
+    public void getImsRcsRegistrationState(int subId, IIntegerConsumer consumer) {
+        enforceReadPrivilegedPermission("getImsRcsRegistrationState");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            getRcsFeatureController(subId).getRegistrationState(regState -> {
+                try {
+                    consumer.accept((regState == null)
+                            ? RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED : regState);
+                } catch (RemoteException e) {
+                    Log.w(TAG, "getImsRcsRegistrationState: callback is not available.");
+                }
+            });
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Gets the Transport Type associated with the current IMS RCS registration.
+     */
+    @Override
+    public void getImsRcsRegistrationTransportType(int subId, IIntegerConsumer consumer) {
+        enforceReadPrivilegedPermission("getImsRcsRegistrationTransportType");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            getRcsFeatureController(subId).getRegistrationTech(regTech -> {
+                // Convert registration tech from ImsRegistrationImplBase -> RegistrationManager
+                int regTechConverted = (regTech == null)
+                        ? ImsRegistrationImplBase.REGISTRATION_TECH_NONE : regTech;
+                regTechConverted = RegistrationManager.IMS_REG_TO_ACCESS_TYPE_MAP.get(
+                        regTechConverted);
+                try {
+                    consumer.accept(regTechConverted);
+                } catch (RemoteException e) {
+                    Log.w(TAG, "getImsRcsRegistrationTransportType: callback is not available.");
+                }
+            });
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Register a capability callback which will provide RCS availability updates for the
+     * subscription specified.
+     *
+     * @param subId the subscription ID
+     * @param callback The ImsCapabilityCallback to be registered.
+     */
+    @Override
+    public void registerRcsAvailabilityCallback(int subId, IImsCapabilityCallback callback) {
+        enforceReadPrivilegedPermission("registerRcsAvailabilityCallback");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            getRcsFeatureController(subId).registerRcsAvailabilityCallback(subId, callback);
+        } catch (ImsException e) {
+            Log.e(TAG, "registerRcsAvailabilityCallback: sudId=" + subId + ", " + e.getMessage());
+            throw new ServiceSpecificException(e.getCode());
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Remove the registered capability callback.
+     *
+     * @param subId the subscription ID
+     * @param callback The ImsCapabilityCallback to be removed.
+     */
+    @Override
+    public void unregisterRcsAvailabilityCallback(int subId, IImsCapabilityCallback callback) {
+        enforceReadPrivilegedPermission("unregisterRcsAvailabilityCallback");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            getRcsFeatureController(subId).unregisterRcsAvailabilityCallback(subId, callback);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Query for the capability of an IMS RCS service
+     *
+     * @param subId the subscription ID
+     * @param capability the RCS capability to query.
+     * @param radioTech the radio tech that this capability failed for
+     * @return true if the RCS capability is capable for this subscription, false otherwise.
+     */
+    @Override
+    public boolean isCapable(int subId,
+            @RcsFeature.RcsImsCapabilities.RcsImsCapabilityFlag int capability,
+            @ImsRegistrationImplBase.ImsRegistrationTech int radioTech) {
+        enforceReadPrivilegedPermission("isCapable");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            return getRcsFeatureController(subId).isCapable(capability, radioTech);
+        } catch (ImsException e) {
+            Log.e(TAG, "isCapable: sudId=" + subId
+                    + ", capability=" + capability + ", " + e.getMessage());
+            return false;
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Query the availability of an IMS RCS capability.
+     *
+     * @param subId the subscription ID
+     * @param capability the RCS capability to query.
+     * @return true if the RCS capability is currently available for the associated subscription,
+     * false otherwise.
+     */
+    @Override
+    public boolean isAvailable(int subId,
+            @RcsFeature.RcsImsCapabilities.RcsImsCapabilityFlag int capability) {
+        enforceReadPrivilegedPermission("isAvailable");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            return getRcsFeatureController(subId).isAvailable(capability);
+        } catch (ImsException e) {
+            Log.e(TAG, "isAvailable: sudId=" + subId
+                    + ", capability=" + capability + ", " + e.getMessage());
+            return false;
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    @Override
+    public void requestCapabilities(int subId, String callingPackage, String callingFeatureId,
+            List<Uri> contactNumbers, IRcsUceControllerCallback c) {
+        enforceReadPrivilegedPermission("requestCapabilities");
+        if (!isUceSettingEnabled(subId, callingPackage, callingFeatureId)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "The user has not enabled UCE for this subscription.");
+        }
+        final long token = Binder.clearCallingIdentity();
+        try {
+            UserCapabilityExchangeImpl uce = getRcsFeatureController(subId).getFeature(
+                    UserCapabilityExchangeImpl.class);
+            if (uce == null) {
+                throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                        "This subscription does not support UCE.");
+            }
+            uce.requestCapabilities(contactNumbers, c);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    @Override
+    public int getUcePublishState(int subId) {
+        enforceReadPrivilegedPermission("getUcePublishState");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            UserCapabilityExchangeImpl uce = getRcsFeatureController(subId).getFeature(
+                    UserCapabilityExchangeImpl.class);
+            if (uce == null) {
+                throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                        "This subscription does not support UCE.");
+            }
+            return uce.getUcePublishState();
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    @Override
+    public boolean isUceSettingEnabled(int subId, String callingPackage, String callingFeatureId) {
+        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
+                mApp, subId, callingPackage, callingFeatureId, "isUceSettingEnabled")) {
+            Log.w(TAG, "isUceSettingEnabled: READ_PHONE_STATE app op disabled when accessing "
+                    + "isUceSettingEnabled");
+            return false;
+        }
+        final long token = Binder.clearCallingIdentity();
+        try {
+            return SubscriptionManager.getBooleanSubscriptionProperty(subId,
+                    SubscriptionManager.IMS_RCS_UCE_ENABLED, false /*defaultValue*/, mApp);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    @Override
+    public void setUceSettingEnabled(int subId, boolean isEnabled) {
+        enforceModifyPermission();
+        final long token = Binder.clearCallingIdentity();
+        try {
+            SubscriptionManager.setSubscriptionProperty(subId,
+                    SubscriptionManager.IMS_RCS_UCE_ENABLED, (isEnabled ? "1" : "0"));
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Make sure either called from same process as self (phone) or IPC caller has read privilege.
+     *
+     * @throws SecurityException if the caller does not have the required permission
+     */
+    private void enforceReadPrivilegedPermission(String message) {
+        mApp.enforceCallingOrSelfPermission(
+                android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, message);
+    }
+
+    /**
+     * 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);
+    }
+
+    /**
+     * Retrieve ImsPhone instance.
+     *
+     * @param subId the subscription ID
+     * @return The ImsPhone instance
+     * @throws ServiceSpecificException if getting ImsPhone instance failed.
+     */
+    private ImsPhone getImsPhone(int subId) {
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS is not available on device.");
+        }
+        Phone phone = PhoneGlobals.getPhone(subId);
+        if (phone == null) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION,
+                    "Invalid subscription Id: " + subId);
+        }
+        ImsPhone imsPhone = (ImsPhone) phone.getImsPhone();
+        if (imsPhone == null) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_SERVICE_UNAVAILABLE,
+                    "Cannot find ImsPhone instance: " + subId);
+        }
+        return imsPhone;
+    }
+
+    /**
+     * Retrieve RcsFeatureManager instance.
+     *
+     * @param subId the subscription ID
+     * @return The RcsFeatureManager instance
+     * @throws ServiceSpecificException if getting RcsFeatureManager instance failed.
+     */
+    private RcsFeatureController getRcsFeatureController(int subId) {
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS is not available on device.");
+        }
+        if (mRcsService == null) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS is not available on device.");
+        }
+        Phone phone = PhoneGlobals.getPhone(subId);
+        if (phone == null) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION,
+                    "Invalid subscription Id: " + subId);
+        }
+        int slotId = phone.getPhoneId();
+        RcsFeatureController c = mRcsService.getFeatureController(slotId);
+        if (c == null) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "The requested operation is not supported for subId " + subId);
+        }
+        return c;
+    }
+
+    void setRcsService(TelephonyRcsService rcsService) {
+        mRcsService = rcsService;
+    }
+}
diff --git a/src/com/android/phone/MobileDataPreference.java b/src/com/android/phone/MobileDataPreference.java
deleted file mode 100644
index e1ceab0..0000000
--- a/src/com/android/phone/MobileDataPreference.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * Copyright (C) 2017 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.content.DialogInterface;
-import android.database.ContentObserver;
-import android.net.Uri;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.preference.DialogPreference;
-import android.preference.PreferenceScreen;
-import android.provider.Settings.Global;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.View;
-import android.widget.Checkable;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-
-import java.util.List;
-
-/**
- * Customized Preference to enable / disable mobile data.
- * Basically copy of with com.android.settings.CellDataPreference.
- */
-public class MobileDataPreference extends DialogPreference {
-
-    private static final boolean DBG = false;
-    private static final String TAG = "MobileDataPreference";
-
-    public int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-    public boolean mChecked;
-    // Whether to show the dialog to ask switching default data subscription.
-    // Should be true only when a multi-sim phone only supports data connection on a single phone,
-    // and user is enabling data on the non-default phone.
-    public boolean mMultiSimDialog;
-    private TelephonyManager mTelephonyManager;
-    private SubscriptionManager mSubscriptionManager;
-
-    public MobileDataPreference(Context context, AttributeSet attrs) {
-        super(context, attrs, com.android.internal.R.attr.switchPreferenceStyle);
-    }
-
-    // Must be called to avoid binder leakage.
-    void dispose() {
-        mListener.setListener(false, mSubId, getContext());
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Parcelable s) {
-        CellDataState state = (CellDataState) s;
-        super.onRestoreInstanceState(state.getSuperState());
-        mTelephonyManager = TelephonyManager.from(getContext());
-        mChecked = state.mChecked;
-        mMultiSimDialog = state.mMultiSimDialog;
-        if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
-            mSubId = state.mSubId;
-            setKey(getKey() + mSubId);
-        }
-        notifyChanged();
-    }
-
-    @Override
-    protected Parcelable onSaveInstanceState() {
-        CellDataState state = new CellDataState(super.onSaveInstanceState());
-        state.mChecked = mChecked;
-        state.mMultiSimDialog = mMultiSimDialog;
-        state.mSubId = mSubId;
-        return state;
-    }
-
-    @Override
-    protected void onAttachedToActivity() {
-        super.onAttachedToActivity();
-        mListener.setListener(true, mSubId, getContext());
-    }
-
-    @Override
-    protected void onPrepareForRemoval() {
-        mListener.setListener(false, mSubId, getContext());
-        super.onPrepareForRemoval();
-    }
-
-    /**
-     * Initialize this preference with subId.
-     */
-    public void initialize(int subId) {
-        if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
-            throw new IllegalArgumentException("MobileDataPreference needs a SubscriptionInfo");
-        }
-        mSubscriptionManager = SubscriptionManager.from(getContext());
-        mTelephonyManager = TelephonyManager.from(getContext());
-        if (mSubId != subId) {
-            mSubId = subId;
-            setKey(getKey() + subId);
-        }
-        updateChecked();
-    }
-
-    private void updateChecked() {
-        setChecked(mTelephonyManager.getDataEnabled(mSubId));
-    }
-
-    @Override
-    public void performClick(PreferenceScreen preferenceScreen) {
-        if (!isEnabled() || !SubscriptionManager.isValidSubscriptionId(mSubId)) {
-            return;
-        }
-        final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(
-                mSubId);
-        final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();
-        final boolean isMultiSim = (mTelephonyManager.getSimCount() > 1);
-        final boolean isMultipleDataOnCapable =
-                (mTelephonyManager.getNumberOfModemsWithSimultaneousDataConnections() > 1);
-        final boolean isDefaultDataSubscription = (nextSir != null && currentSir != null
-                && currentSir.getSubscriptionId() == nextSir.getSubscriptionId());
-        if (mChecked) {
-            if (!isMultiSim) {
-                // disabling data; show confirmation dialog which eventually
-                // calls setMobileDataEnabled() once user confirms.
-                mMultiSimDialog = false;
-                super.performClick(preferenceScreen);
-            } else {
-                // Don't show any dialog.
-                setMobileDataEnabled(false /* enabled */, false /* disableOtherSubscriptions */);
-            }
-        } else {
-            if (isMultiSim && !isMultipleDataOnCapable && !isDefaultDataSubscription) {
-                // enabling data and setting to default; show confirmation dialog which eventually
-                // calls setMobileDataEnabled() once user confirms.
-                mMultiSimDialog = true;
-                super.performClick(preferenceScreen);
-            } else {
-                // Don't show any dialog.
-                setMobileDataEnabled(true /* enabled */, false /* disableOtherSubscriptions */);
-            }
-        }
-    }
-
-    private void setMobileDataEnabled(boolean enabled, boolean disableOtherSubscriptions) {
-        if (DBG) Log.d(TAG, "setMobileDataEnabled(" + enabled + "," + mSubId + ")");
-
-        MetricsLogger.action(getContext(), MetricsEvent.ACTION_MOBILE_NETWORK_MOBILE_DATA_TOGGLE,
-                enabled);
-
-        mTelephonyManager.setDataEnabled(mSubId, enabled);
-
-        if (disableOtherSubscriptions) {
-            disableDataForOtherSubscriptions(mSubId);
-        }
-
-        setChecked(enabled);
-    }
-
-    private void setChecked(boolean checked) {
-        if (mChecked == checked) return;
-        mChecked = checked;
-        notifyChanged();
-    }
-
-    @Override
-    protected void onBindView(View view) {
-        super.onBindView(view);
-        View checkableView = view.findViewById(com.android.internal.R.id.switch_widget);
-        checkableView.setClickable(false);
-        ((Checkable) checkableView).setChecked(mChecked);
-    }
-
-    @Override
-    protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
-        if (mMultiSimDialog) {
-            showMultiSimDialog(builder);
-        } else {
-            showDisableDialog(builder);
-        }
-    }
-
-    private void showDisableDialog(AlertDialog.Builder builder) {
-        builder.setTitle(null)
-                .setMessage(R.string.data_usage_disable_mobile)
-                .setPositiveButton(android.R.string.ok, this)
-                .setNegativeButton(android.R.string.cancel, null);
-    }
-
-    private void showMultiSimDialog(AlertDialog.Builder builder) {
-        final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(mSubId);
-        final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();
-
-        final String previousName = (nextSir == null)
-                ? getContext().getResources().getString(R.string.sim_selection_required_pref)
-                : nextSir.getDisplayName().toString();
-
-        builder.setTitle(R.string.sim_change_data_title);
-        builder.setMessage(getContext().getString(R.string.sim_change_data_message,
-                String.valueOf(currentSir != null ? currentSir.getDisplayName() : null),
-                previousName));
-
-        builder.setPositiveButton(R.string.ok, this);
-        builder.setNegativeButton(R.string.cancel, null);
-    }
-
-    private void disableDataForOtherSubscriptions(int subId) {
-        List<SubscriptionInfo> subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
-        if (subInfoList != null) {
-            for (SubscriptionInfo subInfo : subInfoList) {
-                if (subInfo.getSubscriptionId() != subId) {
-                    mTelephonyManager.setDataEnabled(subInfo.getSubscriptionId(), false);
-                }
-            }
-        }
-    }
-
-    @Override
-    public void onClick(DialogInterface dialog, int which) {
-        if (which != DialogInterface.BUTTON_POSITIVE) {
-            return;
-        }
-        if (mMultiSimDialog) {
-            mSubscriptionManager.setDefaultDataSubId(mSubId);
-            setMobileDataEnabled(true /* enabled */, true /* disableOtherSubscriptions */);
-        } else {
-            // TODO: extend to modify policy enabled flag.
-            setMobileDataEnabled(false /* enabled */, false /* disableOtherSubscriptions */);
-        }
-    }
-
-    private final DataStateListener mListener = new DataStateListener() {
-        @Override
-        public void onChange(boolean selfChange) {
-            updateChecked();
-        }
-    };
-
-    /**
-     * Listener that listens mobile data state change.
-     */
-    public abstract static class DataStateListener extends ContentObserver {
-        public DataStateListener() {
-            super(new Handler(Looper.getMainLooper()));
-        }
-
-        /**
-         * Set / Unset data state listening, specifying subId.
-         */
-        public void setListener(boolean listening, int subId, Context context) {
-            if (listening) {
-                Uri uri = Global.getUriFor(Global.MOBILE_DATA);
-                if (TelephonyManager.getDefault().getSimCount() != 1) {
-                    uri = Global.getUriFor(Global.MOBILE_DATA + subId);
-                }
-                context.getContentResolver().registerContentObserver(uri, false, this);
-            } else {
-                context.getContentResolver().unregisterContentObserver(this);
-            }
-        }
-    }
-
-    /**
-     * Class that represents state of mobile data state.
-     * Used by onSaveInstanceState and onRestoreInstanceState.
-     */
-    public static class CellDataState extends BaseSavedState {
-        public int mSubId;
-        public boolean mChecked;
-        public boolean mMultiSimDialog;
-
-        public CellDataState(Parcelable base) {
-            super(base);
-        }
-
-        public CellDataState(Parcel source) {
-            super(source);
-            mChecked = source.readByte() != 0;
-            mMultiSimDialog = source.readByte() != 0;
-            mSubId = source.readInt();
-        }
-
-        @Override
-        public void writeToParcel(Parcel dest, int flags) {
-            super.writeToParcel(dest, flags);
-            dest.writeByte((byte) (mChecked ? 1 : 0));
-            dest.writeByte((byte) (mMultiSimDialog ? 1 : 0));
-            dest.writeInt(mSubId);
-        }
-
-        public static final Creator<CellDataState> CREATOR = new Creator<CellDataState>() {
-            @Override
-            public CellDataState createFromParcel(Parcel source) {
-                return new CellDataState(source);
-            }
-
-            @Override
-            public CellDataState[] newArray(int size) {
-                return new CellDataState[size];
-            }
-        };
-    }
-}
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
deleted file mode 100644
index e67758d..0000000
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ /dev/null
@@ -1,2308 +0,0 @@
-/*
- * 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.provider.Telephony.Carriers.ENFORCE_MANAGED_URI;
-
-import android.app.ActionBar;
-import android.app.Activity;
-import android.app.DialogFragment;
-import android.app.Fragment;
-import android.app.FragmentManager;
-import android.content.BroadcastReceiver;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.database.ContentObserver;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.os.PersistableBundle;
-import android.os.SystemProperties;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.preference.ListPreference;
-import android.preference.Preference;
-import android.preference.PreferenceCategory;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
-import android.preference.SwitchPreference;
-import android.provider.Settings;
-import android.sysprop.SetupWizardProperties;
-import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
-import android.telephony.CarrierConfigManager;
-import android.telephony.PhoneStateListener;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.telephony.euicc.EuiccManager;
-import android.telephony.ims.ProvisioningManager;
-import android.telephony.ims.feature.ImsFeature;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TabHost;
-
-import com.android.ims.ImsConfig;
-import com.android.ims.ImsException;
-import com.android.ims.ImsManager;
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.internal.telephony.TelephonyIntents;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * "Mobile network settings" screen.  This 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 Activity 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 Activity  {
-
-    // CID of the device.
-    private static final String KEY_CID = "ro.boot.cid";
-    // System Property which is used to decide whether the default eSIM UI will be shown,
-    // the default value is false.
-    private static final String KEY_ENABLE_ESIM_UI_BY_DEFAULT =
-            "esim.enable_esim_system_ui_by_default";
-
-    private static final String LEGACY_ACTION_CONFIGURE_PHONE_ACCOUNT =
-            "android.telecom.action.CONNECTION_SERVICE_CONFIGURE";
-
-    private enum TabState {
-        NO_TABS, UPDATE, DO_NOTHING
-    }
-
-    @Override
-    protected void onNewIntent(Intent intent) {
-        setIntent(intent);
-        MobileNetworkFragment fragment = (MobileNetworkFragment) getFragmentManager()
-                .findFragmentById(R.id.network_setting_content);
-        if (fragment != null) {
-            fragment.onIntentUpdate(intent);
-        }
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.network_setting);
-
-        FragmentManager fragmentManager = getFragmentManager();
-        Fragment fragment = fragmentManager.findFragmentById(R.id.network_setting_content);
-        if (fragment == null) {
-            fragmentManager.beginTransaction()
-                    .add(R.id.network_setting_content, new MobileNetworkFragment())
-                    .commit();
-        }
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(final MenuItem item) {
-        final int itemId = item.getItemId();
-        switch (itemId) {
-            // Respond to the action bar's Up/Home button
-            case android.R.id.home:
-                finish();
-                return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-
-    /**
-     * Returns true if Wifi calling is enabled for at least one subscription.
-     */
-    public static boolean isWifiCallingEnabled(Context context) {
-        SubscriptionManager subManager = context.getSystemService(SubscriptionManager.class);
-        if (subManager == null) {
-            Log.e(MobileNetworkFragment.LOG_TAG,
-                    "isWifiCallingEnabled: couldn't get system service.");
-            return false;
-        }
-        for (int subId : subManager.getActiveSubscriptionIdList()) {
-            if (isWifiCallingEnabled(context, subId)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Returns true if Wifi calling is enabled for the specific subscription with id {@code subId}.
-     */
-    public static boolean isWifiCallingEnabled(Context context, int subId) {
-        final PhoneAccountHandle simCallManager =
-                TelecomManager.from(context).getSimCallManagerForSubscription(subId);
-        final int phoneId = SubscriptionManager.getSlotIndex(subId);
-
-        boolean isWifiCallingEnabled;
-        if (simCallManager != null) {
-            Intent intent = MobileNetworkSettings.buildPhoneAccountConfigureIntent(
-                    context, simCallManager);
-            PackageManager pm = context.getPackageManager();
-            isWifiCallingEnabled = intent != null
-                    && !pm.queryIntentActivities(intent, 0 /* flags */).isEmpty();
-        } else {
-            ImsManager imsMgr = ImsManager.getInstance(context, phoneId);
-            isWifiCallingEnabled = imsMgr != null
-                    && imsMgr.isWfcEnabledByPlatform()
-                    && imsMgr.isWfcProvisionedOnDevice()
-                    && isImsServiceStateReady(imsMgr);
-        }
-
-        return isWifiCallingEnabled;
-    }
-
-    /**
-     * Whether to show the entry point to eUICC settings.
-     *
-     * <p>We show the entry point on any device which supports eUICC as long as either the eUICC
-     * was ever provisioned (that is, at least one profile was ever downloaded onto it), or if
-     * the user has enabled development mode.
-     */
-    public static boolean showEuiccSettings(Context context) {
-        EuiccManager euiccManager =
-                (EuiccManager) context.getSystemService(Context.EUICC_SERVICE);
-        if (!euiccManager.isEnabled()) {
-            return false;
-        }
-
-        ContentResolver cr = context.getContentResolver();
-
-        TelephonyManager tm =
-                (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
-        String currentCountry = tm.getNetworkCountryIso().toLowerCase();
-        String supportedCountries =
-                Settings.Global.getString(cr, Settings.Global.EUICC_SUPPORTED_COUNTRIES);
-        boolean inEsimSupportedCountries = false;
-        if (TextUtils.isEmpty(currentCountry)) {
-            inEsimSupportedCountries = true;
-        } else if (!TextUtils.isEmpty(supportedCountries)) {
-            List<String> supportedCountryList =
-                    Arrays.asList(TextUtils.split(supportedCountries.toLowerCase(), ","));
-            if (supportedCountryList.contains(currentCountry)) {
-                inEsimSupportedCountries = true;
-            }
-        }
-        final boolean esimIgnoredDevice =
-                SetupWizardProperties.esim_cid_ignore()
-                        .contains(SystemProperties.get(KEY_CID, null));
-        final boolean enabledEsimUiByDefault =
-                SystemProperties.getBoolean(KEY_ENABLE_ESIM_UI_BY_DEFAULT, true);
-        final boolean euiccProvisioned =
-                Settings.Global.getInt(cr, Settings.Global.EUICC_PROVISIONED, 0) != 0;
-        final boolean inDeveloperMode =
-                Settings.Global.getInt(cr, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
-
-        return (inDeveloperMode || euiccProvisioned
-                || (!esimIgnoredDevice && enabledEsimUiByDefault && inEsimSupportedCountries));
-    }
-
-    /**
-     * Whether to show the Enhanced 4G LTE settings in search result.
-     *
-     * <p>We show this settings if the VoLTE can be enabled by this device and the carrier app
-     * doesn't set {@link CarrierConfigManager#KEY_HIDE_ENHANCED_4G_LTE_BOOL} to false.
-     */
-    public static boolean hideEnhanced4gLteSettings(Context context) {
-        final CarrierConfigManager carrierConfigManager = new CarrierConfigManager(context);
-        final List<SubscriptionInfo> sil =
-                SubscriptionManager.from(context).getActiveSubscriptionInfoList();
-        // Check all active subscriptions. We only hide the button if it's disabled for all
-        // active subscriptions.
-        if (sil != null) {
-            for (SubscriptionInfo subInfo : sil) {
-                int phoneId = SubscriptionManager.getPhoneId(subInfo.getSubscriptionId());
-                ImsManager imsManager = ImsManager.getInstance(context, phoneId);
-                PersistableBundle carrierConfig = carrierConfigManager.getConfigForSubId(
-                        subInfo.getSubscriptionId());
-                if ((imsManager.isVolteEnabledByPlatform()
-                        && imsManager.isVolteProvisionedOnDevice())
-                        || carrierConfig.getBoolean(
-                        CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL)) {
-                    return false;
-                }
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Returns if DPC APNs are enforced.
-     */
-    public static boolean isDpcApnEnforced(Context context) {
-        try (Cursor enforceCursor = context.getContentResolver().query(ENFORCE_MANAGED_URI,
-                null, null, null, null)) {
-            if (enforceCursor == null || enforceCursor.getCount() != 1) {
-                return false;
-            }
-            enforceCursor.moveToFirst();
-            return enforceCursor.getInt(0) > 0;
-        }
-    }
-
-    private static boolean isImsServiceStateReady(ImsManager imsMgr) {
-        boolean isImsServiceStateReady = false;
-
-        try {
-            if (imsMgr != null && imsMgr.getImsServiceState() == ImsFeature.STATE_READY) {
-                isImsServiceStateReady = true;
-            }
-        } catch (ImsException ex) {
-            Log.e(MobileNetworkFragment.LOG_TAG,
-                    "Exception when trying to get ImsServiceStatus: " + ex);
-        }
-
-        Log.d(MobileNetworkFragment.LOG_TAG, "isImsServiceStateReady=" + isImsServiceStateReady);
-        return isImsServiceStateReady;
-    }
-
-
-    private static Intent buildPhoneAccountConfigureIntent(
-            Context context, PhoneAccountHandle accountHandle) {
-        Intent intent = buildConfigureIntent(
-                context, accountHandle, TelecomManager.ACTION_CONFIGURE_PHONE_ACCOUNT);
-
-        if (intent == null) {
-            // If the new configuration didn't work, try the old configuration intent.
-            intent = buildConfigureIntent(
-                    context, accountHandle, LEGACY_ACTION_CONFIGURE_PHONE_ACCOUNT);
-            if (intent != null) {
-                Log.w(MobileNetworkFragment.LOG_TAG,
-                        "Phone account using old configuration intent: " + accountHandle);
-            }
-        }
-        return intent;
-    }
-
-    private static Intent buildConfigureIntent(
-            Context context, PhoneAccountHandle accountHandle, String actionStr) {
-        if (accountHandle == null || accountHandle.getComponentName() == null
-                || TextUtils.isEmpty(accountHandle.getComponentName().getPackageName())) {
-            return null;
-        }
-
-        // Build the settings intent.
-        Intent intent = new Intent(actionStr);
-        intent.setPackage(accountHandle.getComponentName().getPackageName());
-        intent.addCategory(Intent.CATEGORY_DEFAULT);
-        intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, accountHandle);
-
-        // Check to see that the phone account package can handle the setting intent.
-        PackageManager pm = context.getPackageManager();
-        List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
-        if (resolutions.size() == 0) {
-            intent = null;  // set no intent if the package cannot handle it.
-        }
-
-        return intent;
-    }
-
-    public static class MobileNetworkFragment extends PreferenceFragment implements
-            Preference.OnPreferenceChangeListener, RoamingDialogFragment.RoamingDialogListener {
-
-        // debug data
-        private static final String LOG_TAG = "NetworkSettings";
-        private static final boolean DBG = true;
-        public static final int REQUEST_CODE_EXIT_ECM = 17;
-
-        // Number of active Subscriptions to show tabs
-        private static final int TAB_THRESHOLD = 2;
-
-        // Number of last phone number digits shown in Euicc Setting tab
-        private static final int NUM_LAST_PHONE_DIGITS = 4;
-
-        // fragment tag for roaming data dialog
-        private static final String ROAMING_TAG = "RoamingDialogFragment";
-
-        //String keys for preference lookup
-        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";
-        private static final String BUTTON_ENABLED_NETWORKS_KEY = "enabled_networks_key";
-        private static final String BUTTON_4G_LTE_KEY = "enhanced_4g_lte";
-        private static final String BUTTON_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";
-        private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
-        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_CARRIER_SETTINGS_EUICC_KEY =
-                "carrier_settings_euicc_key";
-        private static final String BUTTON_WIFI_CALLING_KEY = "wifi_calling_key";
-        private static final String BUTTON_VIDEO_CALLING_KEY = "video_calling_key";
-        private static final String BUTTON_MOBILE_DATA_ENABLE_KEY = "mobile_data_enable";
-        private static final String BUTTON_DATA_USAGE_KEY = "data_usage_summary";
-        private static final String BUTTON_ADVANCED_OPTIONS_KEY = "advanced_options";
-        private static final String CATEGORY_CALLING_KEY = "calling";
-        private static final String CATEGORY_GSM_APN_EXPAND_KEY = "category_gsm_apn_key";
-        private static final String CATEGORY_CDMA_APN_EXPAND_KEY = "category_cdma_apn_key";
-        private static final String BUTTON_GSM_APN_EXPAND_KEY = "button_gsm_apn_key";
-        private static final String BUTTON_CDMA_APN_EXPAND_KEY = "button_cdma_apn_key";
-
-        private final BroadcastReceiver mPhoneChangeReceiver = new PhoneChangeReceiver();
-        private final ContentObserver mDpcEnforcedContentObserver = new DpcApnEnforcedObserver();
-
-        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";
-
-        //Information that needs to save into Bundle.
-        private static final String EXPAND_ADVANCED_FIELDS = "expand_advanced_fields";
-        //Intent extra to indicate expand all fields.
-        private static final String EXPAND_EXTRA = "expandable";
-
-        private SubscriptionManager mSubscriptionManager;
-        private TelephonyManager mTelephonyManager;
-        private CarrierConfigManager mCarrierConfigManager;
-        private int mSubId;
-
-        //UI objects
-        private AdvancedOptionsPreference mAdvancedOptions;
-        private ListPreference mButtonPreferredNetworkMode;
-        private ListPreference mButtonEnabledNetworks;
-        private RestrictedSwitchPreference mButtonDataRoam;
-        private SwitchPreference mButton4glte;
-        private Preference mLteDataServicePref;
-        private Preference mEuiccSettingsPref;
-        private PreferenceCategory mCallingCategory;
-        private Preference mWiFiCallingPref;
-        private SwitchPreference mVideoCallingPref;
-        private NetworkSelectListPreference mButtonNetworkSelect;
-        private MobileDataPreference mMobileDataPref;
-        private DataUsagePreference mDataUsagePref;
-
-        private static final String iface = "rmnet0"; //TODO: this will go away
-        private List<SubscriptionInfo> mActiveSubInfos;
-
-        private UserManager mUm;
-        private ImsManager mImsMgr;
-        private MyHandler mHandler;
-        private boolean mOkClicked;
-        private boolean mExpandAdvancedFields;
-
-        // We assume the the value returned by mTabHost.getCurrentTab() == slotId
-        private TabHost mTabHost;
-
-        //GsmUmts options and Cdma options
-        GsmUmtsOptions mGsmUmtsOptions;
-        CdmaOptions mCdmaOptions;
-
-        private Preference mClickedPreference;
-        private boolean mShow4GForLTE = false;
-        private boolean mIsGlobalCdma;
-        private boolean mOnlyAutoSelectInHomeNW;
-        private boolean mUnavailable;
-
-        private class PhoneCallStateListener extends PhoneStateListener {
-            /*
-             * Enable/disable the 'Enhanced 4G LTE Mode' when in/out of a call
-             * and depending on TTY mode and TTY support over VoLTE.
-             * @see android.telephony.PhoneStateListener#onCallStateChanged(int,
-             * java.lang.String)
-             */
-            @Override
-            public void onCallStateChanged(int state, String incomingNumber) {
-                if (DBG) log("PhoneStateListener.onCallStateChanged: state=" + state);
-
-                updateEnhanced4gLteState();
-                updateWiFiCallState();
-                updateVideoCallState();
-                updatePreferredNetworkType();
-            }
-
-            /**
-             * Listen to different subId if it's changed.
-             */
-            protected void updateSubscriptionId(Integer subId) {
-                if (subId.equals(PhoneCallStateListener.this.mSubId)) {
-                    return;
-                }
-
-                mTelephonyManager.listen(this, PhoneStateListener.LISTEN_NONE);
-
-                // Now, listen to new subId if it's valid. register the listener with
-                // mTelephonyManager instance created for the new subId.
-                if (SubscriptionManager.isValidSubscriptionId(subId)) {
-                    mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE);
-                }
-            }
-        }
-
-        private final PhoneCallStateListener mPhoneStateListener = new PhoneCallStateListener();
-
-        @Override
-        public void onPositiveButtonClick(DialogFragment dialog) {
-            mTelephonyManager.setDataRoamingEnabled(true);
-            mButtonDataRoam.setChecked(true);
-            MetricsLogger.action(getContext(),
-                    getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
-                    true);
-        }
-
-        @Override
-        public void onViewCreated(View view, Bundle savedInstanceState) {
-            if (getListView() != null) {
-                getListView().setDivider(null);
-            }
-        }
-
-        public void onIntentUpdate(Intent intent) {
-            if (!mUnavailable) {
-                updateCurrentTab(intent.getExtras());
-            }
-        }
-
-        /**
-         * 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) {
-            sendMetricsEventPreferenceClicked(preferenceScreen, preference);
-
-            /** TODO: Refactor and get rid of the if's using subclasses */
-            if (preference.getKey().equals(BUTTON_4G_LTE_KEY)) {
-                return true;
-            } else if (mGsmUmtsOptions != null &&
-                    mGsmUmtsOptions.preferenceTreeClick(preference) == true) {
-                return true;
-            } else if (mCdmaOptions != null &&
-                    mCdmaOptions.preferenceTreeClick(preference) == true) {
-                if (mTelephonyManager.getEmergencyCallbackMode()) {
-
-                    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(
-                        getContext().getContentResolver(),
-                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
-                        preferredNetworkMode);
-                mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
-                return true;
-            } else if (preference == mLteDataServicePref) {
-                String tmpl = android.provider.Settings.Global.getString(
-                        getActivity().getContentResolver(),
-                        android.provider.Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL);
-                if (!TextUtils.isEmpty(tmpl)) {
-                    String imsi = mTelephonyManager.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 (preference == mButtonEnabledNetworks) {
-                int settingsNetworkMode = android.provider.Settings.Global.getInt(
-                        getContext().getContentResolver(),
-                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
-                        preferredNetworkMode);
-                mButtonEnabledNetworks.setValue(Integer.toString(settingsNetworkMode));
-                return true;
-            } else if (preference == mButtonDataRoam) {
-                // Do not disable the preference screen if the user clicks Data roaming.
-                return true;
-            } else if (preference == mEuiccSettingsPref) {
-                Intent intent = new Intent(EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS);
-                startActivity(intent);
-                return true;
-            } else if (preference == mWiFiCallingPref || preference == mVideoCallingPref
-                    || preference == mMobileDataPref || preference == mDataUsagePref) {
-                return false;
-            } else if (preference == mAdvancedOptions) {
-                mExpandAdvancedFields = true;
-                updateBody();
-                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;
-            }
-        }
-
-        private final SubscriptionManager.OnSubscriptionsChangedListener
-                mOnSubscriptionsChangeListener
-                = new SubscriptionManager.OnSubscriptionsChangedListener() {
-            @Override
-            public void onSubscriptionsChanged() {
-                if (DBG) log("onSubscriptionsChanged:");
-                initializeSubscriptions();
-            }
-        };
-
-        private int getSlotIdFromBundle(Bundle data) {
-            int subId = -1;
-            if (data != null) {
-                subId = data.getInt(Settings.EXTRA_SUB_ID, -1);
-            }
-            return SubscriptionManager.getSlotIndex(subId);
-        }
-
-        private void initializeSubscriptions() {
-            final Activity activity = getActivity();
-            if (activity == null || activity.isDestroyed()) {
-                // Process preferences in activity only if its not destroyed
-                return;
-            }
-            int currentTab = 0;
-            if (DBG) log("initializeSubscriptions:+");
-
-            // Before updating the the active subscription list check
-            // if tab updating is needed as the list is changing.
-            List<SubscriptionInfo> sil = mSubscriptionManager.getActiveSubscriptionInfoList();
-            MobileNetworkSettings.TabState state = isUpdateTabsNeeded(sil);
-
-            // Update to the active subscription list
-            mActiveSubInfos.clear();
-            if (sil != null) {
-                mActiveSubInfos.addAll(sil);
-                // If there is only 1 sim then currenTab should represent slot no. of the sim.
-                if (sil.size() == 1) {
-                    currentTab = sil.get(0).getSimSlotIndex();
-                }
-            }
-
-            switch (state) {
-                case UPDATE: {
-                    if (DBG) log("initializeSubscriptions: UPDATE");
-                    currentTab = mTabHost != null ? mTabHost.getCurrentTab() : 0;
-
-                    mTabHost = (TabHost) getActivity().findViewById(android.R.id.tabhost);
-                    mTabHost.setup();
-
-                    // Update the tabName. Since the mActiveSubInfos are in slot order
-                    // we can iterate though the tabs and subscription info in one loop. But
-                    // we need to handle the case where a slot may be empty.
-
-                    Iterator<SubscriptionInfo> siIterator = mActiveSubInfos.listIterator();
-                    SubscriptionInfo si = siIterator.hasNext() ? siIterator.next() : null;
-                    for (int simSlotIndex = 0; simSlotIndex  < mActiveSubInfos.size();
-                         simSlotIndex++) {
-                        String tabName;
-                        if (si != null && si.getSimSlotIndex() == simSlotIndex) {
-                            // Slot is not empty and we match
-                            tabName = String.valueOf(si.getDisplayName());
-                            si = siIterator.hasNext() ? siIterator.next() : null;
-                        } else {
-                            // Slot is empty, set name to unknown
-                            tabName = getResources().getString(R.string.unknown);
-                        }
-                        if (DBG) {
-                            log("initializeSubscriptions:tab=" + simSlotIndex + " name=" + tabName);
-                        }
-
-                        mTabHost.addTab(buildTabSpec(String.valueOf(simSlotIndex), tabName));
-                    }
-
-                    mTabHost.setOnTabChangedListener(mTabListener);
-                    mTabHost.setCurrentTab(currentTab);
-                    break;
-                }
-                case NO_TABS: {
-                    if (DBG) log("initializeSubscriptions: NO_TABS");
-
-                    if (mTabHost != null) {
-                        mTabHost.clearAllTabs();
-                        mTabHost = null;
-                    }
-                    break;
-                }
-                case DO_NOTHING: {
-                    if (DBG) log("initializeSubscriptions: DO_NOTHING");
-                    if (mTabHost != null) {
-                        currentTab = mTabHost.getCurrentTab();
-                    }
-                    break;
-                }
-            }
-            updatePhone(currentTab);
-            updateBody();
-            if (DBG) log("initializeSubscriptions:-");
-        }
-
-        private MobileNetworkSettings.TabState isUpdateTabsNeeded(List<SubscriptionInfo> newSil) {
-            TabState state = MobileNetworkSettings.TabState.DO_NOTHING;
-            if (newSil == null) {
-                if (mActiveSubInfos.size() >= TAB_THRESHOLD) {
-                    if (DBG) log("isUpdateTabsNeeded: NO_TABS, size unknown and was tabbed");
-                    state = MobileNetworkSettings.TabState.NO_TABS;
-                }
-            } else if (newSil.size() < TAB_THRESHOLD && mActiveSubInfos.size() >= TAB_THRESHOLD) {
-                if (DBG) log("isUpdateTabsNeeded: NO_TABS, size went to small");
-                state = MobileNetworkSettings.TabState.NO_TABS;
-            } else if (newSil.size() >= TAB_THRESHOLD && mActiveSubInfos.size() < TAB_THRESHOLD) {
-                if (DBG) log("isUpdateTabsNeeded: UPDATE, size changed");
-                state = MobileNetworkSettings.TabState.UPDATE;
-            } else if (newSil.size() >= TAB_THRESHOLD) {
-                Iterator<SubscriptionInfo> siIterator = mActiveSubInfos.iterator();
-                for(SubscriptionInfo newSi : newSil) {
-                    SubscriptionInfo curSi = siIterator.next();
-                    if (!newSi.getDisplayName().equals(curSi.getDisplayName())) {
-                        if (DBG) log("isUpdateTabsNeeded: UPDATE, new name="
-                                + newSi.getDisplayName());
-                        state = MobileNetworkSettings.TabState.UPDATE;
-                        break;
-                    }
-                }
-            }
-            if (DBG) {
-                Log.i(LOG_TAG, "isUpdateTabsNeeded:- " + state
-                        + " newSil.size()=" + ((newSil != null) ? newSil.size() : 0)
-                        + " mActiveSubInfos.size()=" + mActiveSubInfos.size());
-            }
-            return state;
-        }
-
-        private TabHost.OnTabChangeListener mTabListener = new TabHost.OnTabChangeListener() {
-            @Override
-            public void onTabChanged(String tabId) {
-                if (DBG) log("onTabChanged:");
-                // The User has changed tab; update the body.
-                updatePhone(Integer.parseInt(tabId));
-                updateBody();
-            }
-        };
-
-        private void updatePhone(int slotId) {
-            final SubscriptionInfo sir = mSubscriptionManager
-                    .getActiveSubscriptionInfoForSimSlotIndex(slotId);
-
-            if (sir != null) {
-                mSubId = sir.getSubscriptionId();
-
-                Log.i(LOG_TAG, "updatePhone:- slotId=" + slotId + " sir=" + sir);
-
-                mImsMgr = ImsManager.getInstance(getContext(),
-                        SubscriptionManager.getPhoneId(mSubId));
-                mTelephonyManager = new TelephonyManager(getContext(), mSubId);
-                if (mImsMgr == null) {
-                    log("updatePhone :: Could not get ImsManager instance!");
-                } else if (DBG) {
-                    log("updatePhone :: mImsMgr=" + mImsMgr);
-                }
-            } else {
-                // There is no active subscription in the given slot.
-                mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-            }
-
-            mPhoneStateListener.updateSubscriptionId(mSubId);
-        }
-
-        private TabHost.TabContentFactory mEmptyTabContent = new TabHost.TabContentFactory() {
-            @Override
-            public View createTabContent(String tag) {
-                return new View(mTabHost.getContext());
-            }
-        };
-
-        private TabHost.TabSpec buildTabSpec(String tag, String title) {
-            return mTabHost.newTabSpec(tag).setIndicator(title).setContent(
-                    mEmptyTabContent);
-        }
-
-        private void updateCurrentTab(Bundle data) {
-            int slotId = getSlotIdFromBundle(data);
-            if (slotId >= 0 && mTabHost != null && mTabHost.getCurrentTab() != slotId) {
-                mTabHost.setCurrentTab(slotId);
-            }
-        }
-
-        @Override
-        public void onSaveInstanceState(Bundle outState) {
-            super.onSaveInstanceState(outState);
-
-            // If advanced fields are already expanded, we save it and expand it
-            // when it's re-created.
-            outState.putBoolean(EXPAND_ADVANCED_FIELDS, mExpandAdvancedFields);
-
-            // Save subId of currently shown tab.
-            outState.putInt(Settings.EXTRA_SUB_ID, mSubId);
-        }
-
-        @Override
-        public void onCreate(Bundle icicle) {
-            Log.i(LOG_TAG, "onCreate:+");
-            super.onCreate(icicle);
-
-            final Activity activity = getActivity();
-            if (activity == null || activity.isDestroyed()) {
-                Log.e(LOG_TAG, "onCreate:- with no valid activity.");
-                return;
-            }
-
-            mHandler = new MyHandler();
-            mUm = (UserManager) activity.getSystemService(Context.USER_SERVICE);
-            mSubscriptionManager = SubscriptionManager.from(activity);
-            mTelephonyManager = (TelephonyManager) activity.getSystemService(
-                            Context.TELEPHONY_SERVICE);
-            mCarrierConfigManager = new CarrierConfigManager(getContext());
-
-            if (icicle != null) {
-                mExpandAdvancedFields = icicle.getBoolean(EXPAND_ADVANCED_FIELDS, false);
-            } else if (getActivity().getIntent().getBooleanExtra(EXPAND_EXTRA, false)) {
-                mExpandAdvancedFields = true;
-            }
-
-            addPreferencesFromResource(R.xml.network_setting_fragment);
-
-            mButton4glte = (SwitchPreference)findPreference(BUTTON_4G_LTE_KEY);
-            mButton4glte.setOnPreferenceChangeListener(this);
-
-            mCallingCategory = (PreferenceCategory) findPreference(CATEGORY_CALLING_KEY);
-            mWiFiCallingPref = findPreference(BUTTON_WIFI_CALLING_KEY);
-            mVideoCallingPref = (SwitchPreference) findPreference(BUTTON_VIDEO_CALLING_KEY);
-            mMobileDataPref = (MobileDataPreference) findPreference(BUTTON_MOBILE_DATA_ENABLE_KEY);
-            mDataUsagePref = (DataUsagePreference) findPreference(BUTTON_DATA_USAGE_KEY);
-
-            //get UI object references
-            PreferenceScreen prefSet = getPreferenceScreen();
-
-            mButtonDataRoam = (RestrictedSwitchPreference) prefSet.findPreference(
-                    BUTTON_ROAMING_KEY);
-            mButtonPreferredNetworkMode = (ListPreference) prefSet.findPreference(
-                    BUTTON_PREFERED_NETWORK_MODE);
-            mButtonEnabledNetworks = (ListPreference) prefSet.findPreference(
-                    BUTTON_ENABLED_NETWORKS_KEY);
-            mAdvancedOptions = (AdvancedOptionsPreference) prefSet.findPreference(
-                    BUTTON_ADVANCED_OPTIONS_KEY);
-            mButtonDataRoam.setOnPreferenceChangeListener(this);
-
-            mLteDataServicePref = prefSet.findPreference(BUTTON_CDMA_LTE_DATA_SERVICE_KEY);
-
-            mEuiccSettingsPref = prefSet.findPreference(BUTTON_CARRIER_SETTINGS_EUICC_KEY);
-            mEuiccSettingsPref.setOnPreferenceChangeListener(this);
-
-            // Initialize mActiveSubInfo
-            int max = mSubscriptionManager.getActiveSubscriptionInfoCountMax();
-            mActiveSubInfos = new ArrayList<SubscriptionInfo>(max);
-
-            int currentTab = mTabHost != null ? mTabHost.getCurrentTab() : 0;
-            updatePhone(currentTab);
-            if (hasActiveSubscriptions()) {
-                updateEnabledNetworksEntries();
-            }
-            Log.i(LOG_TAG, "onCreate:-");
-        }
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            return inflater.inflate(com.android.internal.R.layout.common_tab_settings,
-                    container, false);
-        }
-
-        @Override
-        public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-            if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)
-                    || !mUm.isSystemUser()) {
-                mUnavailable = true;
-                getActivity().setContentView(R.layout.telephony_disallowed_preference_screen);
-            } else {
-                initializeSubscriptions();
-
-                if (savedInstanceState != null) {
-                    updateCurrentTab(savedInstanceState);
-                } else {
-                    updateCurrentTab(getActivity().getIntent().getExtras());
-                }
-            }
-        }
-
-        private class PhoneChangeReceiver extends BroadcastReceiver {
-            @Override
-            public void onReceive(Context context, Intent intent) {
-                Log.i(LOG_TAG, "onReceive:");
-                if (getActivity() == null || getContext() == null) {
-                    // Received broadcast and activity is in the process of being torn down.
-                    return;
-                }
-                // When the radio changes (ex: CDMA->GSM), refresh all options.
-                updateBody();
-            }
-        }
-
-        private class DpcApnEnforcedObserver extends ContentObserver {
-            DpcApnEnforcedObserver() {
-                super(null);
-            }
-
-            @Override
-            public void onChange(boolean selfChange) {
-                Log.i(LOG_TAG, "DPC enforced onChange:");
-                if (getActivity() == null || getContext() == null) {
-                    // Received content change and activity is in the process of being torn down.
-                    return;
-                }
-                updateBody();
-            }
-        }
-
-        private final ProvisioningManager.Callback mProvisioningCallback =
-                new ProvisioningManager.Callback() {
-            @Override
-            public void onProvisioningIntChanged(int item, int value) {
-                if (item == ImsConfig.ConfigConstants.VOICE_OVER_WIFI_SETTING_ENABLED
-                        || item == ImsConfig.ConfigConstants.VLT_SETTING_ENABLED
-                        || item == ImsConfig.ConfigConstants.LVC_SETTING_ENABLED) {
-                    updateBody();
-                }
-            }
-        };
-
-        @Override
-        public void onDestroy() {
-            super.onDestroy();
-            if (mMobileDataPref != null) {
-                mMobileDataPref.dispose();
-            }
-        }
-
-        @Override
-        public void onResume() {
-            super.onResume();
-            Log.i(LOG_TAG, "onResume:+");
-
-            if (mUnavailable) {
-                Log.i(LOG_TAG, "onResume:- ignore mUnavailable == false");
-                return;
-            }
-
-            // upon resumption from the sub-activity, make sure we re-enable the
-            // preferences.
-            getPreferenceScreen().setEnabled(true);
-
-            // 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(mTelephonyManager.isDataRoamingEnabled());
-
-            if (getPreferenceScreen().findPreference(BUTTON_PREFERED_NETWORK_MODE) != null
-                    || getPreferenceScreen().findPreference(BUTTON_ENABLED_NETWORKS_KEY) != null)  {
-                updatePreferredNetworkUIFromDb();
-            }
-
-            mTelephonyManager.createForSubscriptionId(mSubId)
-                    .listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
-
-            // NOTE: Buttons will be enabled/disabled in mPhoneStateListener
-            updateEnhanced4gLteState();
-
-            // Video calling and WiFi calling state might have changed.
-            updateCallingCategory();
-
-            mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
-
-            final Context context = getActivity();
-            IntentFilter intentFilter = new IntentFilter(
-                    TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
-            context.registerReceiver(mPhoneChangeReceiver, intentFilter);
-            context.getContentResolver().registerContentObserver(ENFORCE_MANAGED_URI, false,
-                    mDpcEnforcedContentObserver);
-
-            // Register callback for provisioning changes.
-            try {
-                if (mImsMgr != null) {
-                    mImsMgr.getConfigInterface().addConfigCallback(mProvisioningCallback);
-                }
-            } catch (ImsException e) {
-                Log.w(LOG_TAG, "onResume: Unable to register callback for provisioning changes.");
-            }
-
-            Log.i(LOG_TAG, "onResume:-");
-
-        }
-
-        private boolean hasActiveSubscriptions() {
-            return mActiveSubInfos.size() > 0;
-        }
-
-        private void updateBodyBasicFields(Activity activity, PreferenceScreen prefSet,
-                int phoneSubId, boolean hasActiveSubscriptions) {
-            Context context = activity.getApplicationContext();
-
-            ActionBar actionBar = activity.getActionBar();
-            if (actionBar != null) {
-                // android.R.id.home will be triggered in onOptionsItemSelected()
-                actionBar.setDisplayHomeAsUpEnabled(true);
-            }
-
-            prefSet.addPreference(mMobileDataPref);
-            prefSet.addPreference(mButtonDataRoam);
-            prefSet.addPreference(mDataUsagePref);
-
-            mMobileDataPref.setEnabled(hasActiveSubscriptions);
-            mButtonDataRoam.setEnabled(hasActiveSubscriptions);
-            mDataUsagePref.setEnabled(hasActiveSubscriptions);
-
-            if (hasActiveSubscriptions) {
-                // Customized preferences needs to be initialized with subId.
-                mMobileDataPref.initialize(phoneSubId);
-                mDataUsagePref.initialize(phoneSubId);
-
-                // Initialize states of mButtonDataRoam.
-                mButtonDataRoam.setChecked(mTelephonyManager.isDataRoamingEnabled());
-                mButtonDataRoam.setDisabledByAdmin(false);
-                if (mButtonDataRoam.isEnabled()) {
-                    if (RestrictedLockUtilsInternal.hasBaseUserRestriction(context,
-                            UserManager.DISALLOW_DATA_ROAMING, UserHandle.myUserId())) {
-                        mButtonDataRoam.setEnabled(false);
-                    } else {
-                        mButtonDataRoam.checkRestrictionAndSetDisabled(
-                                UserManager.DISALLOW_DATA_ROAMING);
-                    }
-                }
-            }
-        }
-
-        private void updateBody() {
-            final Activity activity = getActivity();
-            final PreferenceScreen prefSet = getPreferenceScreen();
-            final boolean hasActiveSubscriptions = hasActiveSubscriptions();
-
-            if (activity == null || activity.isDestroyed()) {
-                Log.e(LOG_TAG, "updateBody with no valid activity.");
-                return;
-            }
-
-            if (prefSet == null) {
-                Log.e(LOG_TAG, "updateBody with no null prefSet.");
-                return;
-            }
-
-            prefSet.removeAll();
-
-            updateBodyBasicFields(activity, prefSet, mSubId, hasActiveSubscriptions);
-
-            if (hasActiveSubscriptions) {
-                if (mExpandAdvancedFields) {
-                    updateBodyAdvancedFields(activity, prefSet, mSubId, hasActiveSubscriptions);
-                } else {
-                    prefSet.addPreference(mAdvancedOptions);
-                }
-            } else {
-                // Shows the "Carrier" preference that allows user to add a e-sim profile.
-                if (showEuiccSettings(getContext())) {
-                    mEuiccSettingsPref.setSummary(null /* summary */);
-                    prefSet.addPreference(mEuiccSettingsPref);
-                }
-            }
-        }
-
-        private void updateBodyAdvancedFields(Activity activity, PreferenceScreen prefSet,
-                int phoneSubId, boolean hasActiveSubscriptions) {
-            boolean isLteOnCdma = mTelephonyManager.getLteOnCdmaMode()
-                    == PhoneConstants.LTE_ON_CDMA_TRUE;
-
-            if (DBG) {
-                log("updateBody: isLteOnCdma=" + isLteOnCdma + " phoneSubId=" + phoneSubId);
-            }
-
-            prefSet.addPreference(mButtonPreferredNetworkMode);
-            prefSet.addPreference(mButtonEnabledNetworks);
-            prefSet.addPreference(mButton4glte);
-
-            if (showEuiccSettings(getActivity())) {
-                prefSet.addPreference(mEuiccSettingsPref);
-                String spn = mTelephonyManager.getSimOperatorName();
-                if (TextUtils.isEmpty(spn)) {
-                    mEuiccSettingsPref.setSummary(null);
-                } else {
-                    mEuiccSettingsPref.setSummary(spn);
-                }
-            }
-
-            int settingsNetworkMode = android.provider.Settings.Global.getInt(
-                    getContext().getContentResolver(),
-                    android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
-                    preferredNetworkMode);
-
-            PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-            mIsGlobalCdma = isLteOnCdma
-                    && carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
-            if (carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL)) {
-                prefSet.removePreference(mButtonPreferredNetworkMode);
-                prefSet.removePreference(mButtonEnabledNetworks);
-                prefSet.removePreference(mLteDataServicePref);
-            } else if (carrierConfig.getBoolean(CarrierConfigManager
-                    .KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)
-                    && !mTelephonyManager.getServiceState().getRoaming()
-                    && mTelephonyManager.getServiceState().getDataRegState()
-                    == ServiceState.STATE_IN_SERVICE) {
-                prefSet.removePreference(mButtonPreferredNetworkMode);
-                prefSet.removePreference(mButtonEnabledNetworks);
-
-                final int phoneType = mTelephonyManager.getPhoneType();
-                if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
-                    updateCdmaOptions(this, prefSet, mSubId);
-                } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
-                    updateGsmUmtsOptions(this, prefSet, phoneSubId);
-                } else {
-                    throw new IllegalStateException("Unexpected phone type: " + phoneType);
-                }
-                // Since pref is being hidden from user, set network mode to default
-                // in case it is currently something else. That is possible if user
-                // changed the setting while roaming and is now back to home network.
-                settingsNetworkMode = preferredNetworkMode;
-            } else if (carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_WORLD_PHONE_BOOL) == true) {
-                prefSet.removePreference(mButtonEnabledNetworks);
-                // set the listener for the mButtonPreferredNetworkMode list preference so we can issue
-                // change Preferred Network Mode.
-                mButtonPreferredNetworkMode.setOnPreferenceChangeListener(this);
-
-                updateCdmaOptions(this, prefSet, mSubId);
-                updateGsmUmtsOptions(this, prefSet, phoneSubId);
-            } else {
-                prefSet.removePreference(mButtonPreferredNetworkMode);
-                updateEnabledNetworksEntries();
-                mButtonEnabledNetworks.setOnPreferenceChangeListener(this);
-                if (DBG) log("settingsNetworkMode: " + settingsNetworkMode);
-            }
-
-            final boolean missingDataServiceUrl = TextUtils.isEmpty(
-                    android.provider.Settings.Global.getString(activity.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");
-            }
-
-            updateEnhanced4gLteState();
-            updatePreferredNetworkType();
-            updateCallingCategory();
-
-            // Enable link to CMAS app settings depending on the value in config.xml.
-            final boolean isCellBroadcastAppLinkEnabled = activity.getResources().getBoolean(
-                    com.android.internal.R.bool.config_cellBroadcastAppLinks);
-            if (!mUm.isAdminUser() || !isCellBroadcastAppLinkEnabled
-                    || mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_CELL_BROADCASTS)) {
-                PreferenceScreen root = getPreferenceScreen();
-                Preference ps = findPreference(BUTTON_CELL_BROADCAST_SETTINGS);
-                if (ps != null) {
-                    root.removePreference(ps);
-                }
-            }
-
-            /**
-             * Listen to extra preference changes that need as Metrics events logging.
-             */
-            if (prefSet.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY) != null) {
-                prefSet.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
-                        .setOnPreferenceChangeListener(this);
-            }
-
-            if (prefSet.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY) != null) {
-                prefSet.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)
-                        .setOnPreferenceChangeListener(this);
-            }
-
-            // Get the networkMode from Settings.System and displays it
-            mButtonEnabledNetworks.setValue(Integer.toString(settingsNetworkMode));
-            mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
-            UpdatePreferredNetworkModeSummary(settingsNetworkMode);
-            UpdateEnabledNetworksValueAndSummary(settingsNetworkMode);
-            // Display preferred network type based on what modem returns b/18676277
-            new SetPreferredNetworkAsyncTask(
-                    mTelephonyManager,
-                    mSubId,
-                    settingsNetworkMode,
-                    mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
-                    .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
-
-            /**
-             * Enable/disable depending upon if there are any active subscriptions.
-             *
-             * I've decided to put this enable/disable code at the bottom as the
-             * code above works even when there are no active subscriptions, thus
-             * putting it afterwards is a smaller change. This can be refined later,
-             * but you do need to remember that this all needs to work when subscriptions
-             * change dynamically such as when hot swapping sims.
-             */
-            int variant4glteTitleIndex = carrierConfig.getInt(
-                    CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT);
-            CharSequence[] variantTitles = getContext().getResources()
-                    .getTextArray(R.array.enhanced_4g_lte_mode_title_variant);
-            CharSequence[] variantSumaries = getContext().getResources()
-                    .getTextArray(R.array.enhanced_4g_lte_mode_sumary_variant);
-            // Default index 0 indicates the default title/sumary string
-            CharSequence enhanced4glteModeTitle = variantTitles[0];
-            CharSequence enhanced4glteModeSummary = variantSumaries[0];
-            if (variant4glteTitleIndex >= 0 && variant4glteTitleIndex < variantTitles.length) {
-                enhanced4glteModeTitle = variantTitles[variant4glteTitleIndex];
-            }
-            if (variant4glteTitleIndex >= 0 && variant4glteTitleIndex < variantSumaries.length) {
-                enhanced4glteModeSummary = variantSumaries[variant4glteTitleIndex];
-            }
-
-            mOnlyAutoSelectInHomeNW = carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL);
-            mButton4glte.setTitle(enhanced4glteModeTitle);
-            mButton4glte.setSummary(enhanced4glteModeSummary);
-            mLteDataServicePref.setEnabled(hasActiveSubscriptions);
-            Preference ps;
-            ps = findPreference(BUTTON_CELL_BROADCAST_SETTINGS);
-            if (ps != null) {
-                ps.setEnabled(hasActiveSubscriptions);
-            }
-            ps = findPreference(CATEGORY_GSM_APN_EXPAND_KEY);
-            if (ps != null) {
-                ps.setEnabled(hasActiveSubscriptions);
-            }
-            ps = findPreference(CATEGORY_CDMA_APN_EXPAND_KEY);
-            if (ps != null) {
-                ps.setEnabled(hasActiveSubscriptions);
-            }
-            ps = findPreference(NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
-            if (ps != null) {
-                ps.setEnabled(hasActiveSubscriptions);
-            }
-            ps = findPreference(BUTTON_CARRIER_SETTINGS_KEY);
-            if (ps != null) {
-                ps.setEnabled(hasActiveSubscriptions);
-            }
-            ps = findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY);
-            if (ps != null) {
-                ps.setEnabled(hasActiveSubscriptions);
-            }
-            ps = findPreference(CATEGORY_CALLING_KEY);
-            if (ps != null) {
-                ps.setEnabled(hasActiveSubscriptions);
-            }
-            ps = findPreference(NetworkOperators.BUTTON_AUTO_SELECT_KEY);
-            if (ps != null) {
-                ps.setSummary(null);
-                if (mTelephonyManager.getServiceState().getRoaming()) {
-                    ps.setEnabled(true);
-                } else {
-                    ps.setEnabled(!mOnlyAutoSelectInHomeNW);
-                    if (mOnlyAutoSelectInHomeNW) {
-                        ps.setSummary(getResources().getString(
-                                R.string.manual_mode_disallowed_summary,
-                                mTelephonyManager.getSimOperatorName()));
-                    }
-                }
-            }
-        }
-
-        // Requires that mSubId is up to date
-        void updateEnabledNetworksEntries() {
-            final int phoneType = mTelephonyManager.getPhoneType();
-            final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-            mShow4GForLTE = carrierConfig != null ? carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL) : false;
-            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
-                final int lteForced = android.provider.Settings.Global.getInt(
-                        getContext().getContentResolver(),
-                        android.provider.Settings.Global.LTE_SERVICE_FORCED + mSubId,
-                        0);
-                final boolean isLteOnCdma = mTelephonyManager.getLteOnCdmaMode()
-                        == PhoneConstants.LTE_ON_CDMA_TRUE;
-                final int settingsNetworkMode = android.provider.Settings.Global.getInt(
-                        getContext().getContentResolver(),
-                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
-                        preferredNetworkMode);
-                if (isLteOnCdma) {
-                    if (lteForced == 0) {
-                        mButtonEnabledNetworks.setEntries(
-                                R.array.enabled_networks_cdma_choices);
-                        mButtonEnabledNetworks.setEntryValues(
-                                R.array.enabled_networks_cdma_values);
-                    } else {
-                        switch (settingsNetworkMode) {
-                            case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
-                            case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
-                            case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
-                                mButtonEnabledNetworks.setEntries(
-                                        R.array.enabled_networks_cdma_no_lte_choices);
-                                mButtonEnabledNetworks.setEntryValues(
-                                        R.array.enabled_networks_cdma_no_lte_values);
-                                break;
-                            case TelephonyManager.NETWORK_MODE_GLOBAL:
-                            case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
-                            case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
-                            case TelephonyManager.NETWORK_MODE_LTE_ONLY:
-                                mButtonEnabledNetworks.setEntries(
-                                        R.array.enabled_networks_cdma_only_lte_choices);
-                                mButtonEnabledNetworks.setEntryValues(
-                                        R.array.enabled_networks_cdma_only_lte_values);
-                                break;
-                            default:
-                                mButtonEnabledNetworks.setEntries(
-                                        R.array.enabled_networks_cdma_choices);
-                                mButtonEnabledNetworks.setEntryValues(
-                                        R.array.enabled_networks_cdma_values);
-                                break;
-                        }
-                    }
-                }
-                updateCdmaOptions(this, getPreferenceScreen(), mSubId);
-
-            } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
-                if (isSupportTdscdma()) {
-                    mButtonEnabledNetworks.setEntries(
-                            R.array.enabled_networks_tdscdma_choices);
-                    mButtonEnabledNetworks.setEntryValues(
-                            R.array.enabled_networks_tdscdma_values);
-                } else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)
-                        && !getResources().getBoolean(R.bool.config_enabled_lte)) {
-                    mButtonEnabledNetworks.setEntries(
-                            R.array.enabled_networks_except_gsm_lte_choices);
-                    mButtonEnabledNetworks.setEntryValues(
-                            R.array.enabled_networks_except_gsm_lte_values);
-                } else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)) {
-                    int select = mShow4GForLTE
-                            ? R.array.enabled_networks_except_gsm_4g_choices
-                            : R.array.enabled_networks_except_gsm_choices;
-                    mButtonEnabledNetworks.setEntries(select);
-                    mButtonEnabledNetworks.setEntryValues(
-                            R.array.enabled_networks_except_gsm_values);
-                } else if (!getResources().getBoolean(R.bool.config_enabled_lte)) {
-                    mButtonEnabledNetworks.setEntries(
-                            R.array.enabled_networks_except_lte_choices);
-                    mButtonEnabledNetworks.setEntryValues(
-                            R.array.enabled_networks_except_lte_values);
-                } else if (mIsGlobalCdma) {
-                    mButtonEnabledNetworks.setEntries(
-                            R.array.enabled_networks_cdma_choices);
-                    mButtonEnabledNetworks.setEntryValues(
-                            R.array.enabled_networks_cdma_values);
-                } else {
-                    int select = mShow4GForLTE ? R.array.enabled_networks_4g_choices
-                            : R.array.enabled_networks_choices;
-                    mButtonEnabledNetworks.setEntries(select);
-                    mButtonEnabledNetworks.setEntryValues(
-                            R.array.enabled_networks_values);
-                }
-                updateGsmUmtsOptions(this, getPreferenceScreen(), mSubId);
-            } else {
-                throw new IllegalStateException("Unexpected phone type: " + phoneType);
-            }
-            if (isWorldMode()) {
-                mButtonEnabledNetworks.setEntries(
-                        R.array.preferred_network_mode_choices_world_mode);
-                mButtonEnabledNetworks.setEntryValues(
-                        R.array.preferred_network_mode_values_world_mode);
-            }
-        }
-
-        @Override
-        public void onPause() {
-            super.onPause();
-            if (DBG) log("onPause:+");
-
-            mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
-
-            mSubscriptionManager
-                    .removeOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
-
-            final Context context = getActivity();
-            context.unregisterReceiver(mPhoneChangeReceiver);
-            context.getContentResolver().unregisterContentObserver(mDpcEnforcedContentObserver);
-
-            // Remove callback for provisioning changes.
-            try {
-                if (mImsMgr != null) {
-                    mImsMgr.getConfigInterface().removeConfigCallback(
-                            mProvisioningCallback.getBinder());
-                }
-            } catch (ImsException e) {
-                Log.w(LOG_TAG, "onPause: Unable to remove callback for provisioning changes");
-            }
-
-            if (DBG) log("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) {
-            sendMetricsEventPreferenceChanged(getPreferenceScreen(), preference, objValue);
-
-            final int phoneSubId = mSubId;
-            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.parseInt((String) objValue);
-                int settingsNetworkMode = android.provider.Settings.Global.getInt(
-                        getContext().getContentResolver(),
-                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
-                        preferredNetworkMode);
-                if (buttonNetworkMode != settingsNetworkMode) {
-                    int modemNetworkMode;
-                    // if new mode is invalid ignore it
-                    switch (buttonNetworkMode) {
-                        case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
-                        case TelephonyManager.NETWORK_MODE_GSM_ONLY:
-                        case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
-                        case TelephonyManager.NETWORK_MODE_GSM_UMTS:
-                        case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
-                        case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
-                        case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
-                        case TelephonyManager.NETWORK_MODE_GLOBAL:
-                        case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
-                        case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_ONLY:
-                        case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                            // This is one of the modes we recognize
-                            modemNetworkMode = buttonNetworkMode;
-                            break;
-                        default:
-                            loge("Invalid Network Mode (" +buttonNetworkMode+ ") chosen. Ignore.");
-                            return true;
-                    }
-
-                    android.provider.Settings.Global.putInt(
-                            getContext().getContentResolver(),
-                            android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
-                            buttonNetworkMode );
-                    //Set the modem network mode
-                    new SetPreferredNetworkAsyncTask(
-                            mTelephonyManager,
-                            mSubId,
-                            modemNetworkMode,
-                            mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
-                            .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
-                }
-            } else if (preference == mButtonEnabledNetworks) {
-                mButtonEnabledNetworks.setValue((String) objValue);
-                int buttonNetworkMode;
-                buttonNetworkMode = Integer.parseInt((String) objValue);
-                if (DBG) log("buttonNetworkMode: " + buttonNetworkMode);
-                int settingsNetworkMode = android.provider.Settings.Global.getInt(
-                        getContext().getContentResolver(),
-                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
-                        preferredNetworkMode);
-                if (buttonNetworkMode != settingsNetworkMode) {
-                    int modemNetworkMode;
-                    // if new mode is invalid ignore it
-                    switch (buttonNetworkMode) {
-                        case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
-                        case TelephonyManager.NETWORK_MODE_GSM_ONLY:
-                        case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
-                        case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
-                        case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                            // This is one of the modes we recognize
-                            modemNetworkMode = buttonNetworkMode;
-                            break;
-                        default:
-                            loge("Invalid Network Mode (" +buttonNetworkMode+ ") chosen. Ignore.");
-                            return true;
-                    }
-
-                    UpdateEnabledNetworksValueAndSummary(buttonNetworkMode);
-
-                    android.provider.Settings.Global.putInt(
-                            getContext().getContentResolver(),
-                            android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
-                            buttonNetworkMode );
-                    //Set the modem network mode
-                    new SetPreferredNetworkAsyncTask(
-                            mTelephonyManager,
-                            mSubId,
-                            modemNetworkMode,
-                            mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
-                            .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
-                }
-            } else if (preference == mButton4glte) {
-                boolean enhanced4gMode = !mButton4glte.isChecked();
-                mButton4glte.setChecked(enhanced4gMode);
-                mImsMgr.setEnhanced4gLteModeSetting(mButton4glte.isChecked());
-            } else if (preference == mButtonDataRoam) {
-                if (DBG) log("onPreferenceTreeClick: preference == mButtonDataRoam.");
-
-                //normally called on the toggle click
-                if (!mButtonDataRoam.isChecked()) {
-                    PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(
-                            mSubId);
-                    if (carrierConfig != null && carrierConfig.getBoolean(
-                            CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL)) {
-                        mTelephonyManager.setDataRoamingEnabled(true);
-                        MetricsLogger.action(getContext(),
-                                getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
-                                true);
-                    } else {
-                        // MetricsEvent with no value update.
-                        MetricsLogger.action(getContext(),
-                                getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam));
-                        // First confirm with a warning dialog about charges
-                        mOkClicked = false;
-                        RoamingDialogFragment fragment = new RoamingDialogFragment();
-                        Bundle b = new Bundle();
-                        b.putInt(RoamingDialogFragment.SUB_ID_KEY, mSubId);
-                        fragment.setArguments(b);
-                        fragment.show(getFragmentManager(), ROAMING_TAG);
-                        // Don't update the toggle unless the confirm button is actually pressed.
-                        return false;
-                    }
-                } else {
-                    mTelephonyManager.setDataRoamingEnabled(false);
-                    MetricsLogger.action(getContext(),
-                            getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
-                            false);
-                    return true;
-                }
-            } else if (preference == mVideoCallingPref) {
-                // If mButton4glte is not checked, mVideoCallingPref should be disabled.
-                // So it only makes sense to call phoneMgr.enableVideoCalling if it's checked.
-                if (mButton4glte.isChecked()) {
-                    mImsMgr.setVtSetting((boolean) objValue);
-                    return true;
-                } else {
-                    loge("mVideoCallingPref should be disabled if mButton4glte is not checked.");
-                    mVideoCallingPref.setEnabled(false);
-                    return false;
-                }
-            } else if (preference == getPreferenceScreen()
-                    .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
-                    || preference == getPreferenceScreen()
-                    .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
-                return true;
-            }
-
-            updateBody();
-            // always let the preference setting proceed.
-            return true;
-        }
-
-        private boolean is4gLtePrefEnabled(PersistableBundle carrierConfig) {
-            return (mTelephonyManager.getCallState(mSubId)
-                    == TelephonyManager.CALL_STATE_IDLE)
-                    && mImsMgr != null
-                    && mImsMgr.isNonTtyOrTtyOnVolteEnabled()
-                    && carrierConfig.getBoolean(
-                            CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL);
-        }
-
-        private class MyHandler extends Handler {
-
-            static final int MESSAGE_SET_PREFERRED_NETWORK_TYPE = 0;
-
-            @Override
-            public void handleMessage(Message msg) {
-                switch (msg.what) {
-                    case MESSAGE_SET_PREFERRED_NETWORK_TYPE:
-                        handleSetPreferredNetworkTypeResponse(msg);
-                        break;
-                }
-            }
-
-            private void handleSetPreferredNetworkTypeResponse(Message msg) {
-                final Activity activity = getActivity();
-                if (activity == null || activity.isDestroyed()) {
-                    // Access preferences of activity only if it is not destroyed
-                    // or if fragment is not attached to an activity.
-                    return;
-                }
-
-                boolean success = (boolean) msg.obj;
-
-                if (success) {
-                    int networkMode;
-                    if (getPreferenceScreen().findPreference(
-                            BUTTON_PREFERED_NETWORK_MODE) != null)  {
-                        networkMode =  Integer.parseInt(mButtonPreferredNetworkMode.getValue());
-                        android.provider.Settings.Global.putInt(
-                                getContext().getContentResolver(),
-                                android.provider.Settings.Global.PREFERRED_NETWORK_MODE
-                                        + mSubId,
-                                networkMode );
-                    }
-                    if (getPreferenceScreen().findPreference(BUTTON_ENABLED_NETWORKS_KEY) != null) {
-                        networkMode = Integer.parseInt(mButtonEnabledNetworks.getValue());
-                        android.provider.Settings.Global.putInt(
-                                getContext().getContentResolver(),
-                                android.provider.Settings.Global.PREFERRED_NETWORK_MODE
-                                        + mSubId,
-                                networkMode );
-                    }
-                } else {
-                    Log.i(LOG_TAG, "handleSetPreferredNetworkTypeResponse:" +
-                            "exception in setting network mode.");
-                    updatePreferredNetworkUIFromDb();
-                }
-            }
-        }
-
-        private void updatePreferredNetworkUIFromDb() {
-            int settingsNetworkMode = android.provider.Settings.Global.getInt(
-                    getContext().getContentResolver(),
-                    android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
-                    preferredNetworkMode);
-
-            if (DBG) {
-                log("updatePreferredNetworkUIFromDb: settingsNetworkMode = " +
-                        settingsNetworkMode);
-            }
-
-            UpdatePreferredNetworkModeSummary(settingsNetworkMode);
-            UpdateEnabledNetworksValueAndSummary(settingsNetworkMode);
-            // changes the mButtonPreferredNetworkMode accordingly to settingsNetworkMode
-            mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
-        }
-
-        private void UpdatePreferredNetworkModeSummary(int NetworkMode) {
-            switch(NetworkMode) {
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_tdscdma_gsm_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_tdscdma_gsm_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_wcdma_perf_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_GSM_ONLY:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_gsm_only_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_tdscdma_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_wcdma_only_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_GSM_UMTS:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_gsm_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
-                    switch (mTelephonyManager.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 TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_cdma_only_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_evdo_only_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_tdscdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_ONLY:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_tdscdma_gsm_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_tdscdma_gsm_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_gsm_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_cdma_evdo_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_tdscdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
-                    if (mTelephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
-                            || mIsGlobalCdma
-                            || isWorldMode()) {
-                        mButtonPreferredNetworkMode.setSummary(
-                                R.string.preferred_network_mode_global_summary);
-                    } else {
-                        mButtonPreferredNetworkMode.setSummary(
-                                R.string.preferred_network_mode_lte_summary);
-                    }
-                    break;
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_GLOBAL:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_cdma_evdo_gsm_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_tdscdma_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_wcdma_summary);
-                    break;
-                default:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_global_summary);
-            }
-        }
-
-        private void UpdateEnabledNetworksValueAndSummary(int NetworkMode) {
-            switch (NetworkMode) {
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
-                    mButtonEnabledNetworks.setValue(
-                            Integer.toString(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
-                    mButtonEnabledNetworks.setSummary(R.string.network_3G);
-                    break;
-                case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
-                case TelephonyManager.NETWORK_MODE_GSM_UMTS:
-                case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
-                    if (!mIsGlobalCdma) {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager.NETWORK_MODE_WCDMA_PREF));
-                        mButtonEnabledNetworks.setSummary(R.string.network_3G);
-                    } else {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager
-                                        .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-                        mButtonEnabledNetworks.setSummary(R.string.network_global);
-                    }
-                    break;
-                case TelephonyManager.NETWORK_MODE_GSM_ONLY:
-                    if (!mIsGlobalCdma) {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager.NETWORK_MODE_GSM_ONLY));
-                        mButtonEnabledNetworks.setSummary(R.string.network_2G);
-                    } else {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager
-                                        .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-                        mButtonEnabledNetworks.setSummary(R.string.network_global);
-                    }
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
-                    if (isWorldMode()) {
-                        mButtonEnabledNetworks.setSummary(
-                                R.string.preferred_network_mode_lte_gsm_umts_summary);
-                        controlCdmaOptions(false);
-                        controlGsmOptions(true);
-                        break;
-                    }
-                case TelephonyManager.NETWORK_MODE_LTE_ONLY:
-                case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
-                    if (!mIsGlobalCdma) {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA));
-                        mButtonEnabledNetworks.setSummary((mShow4GForLTE == true)
-                                ? R.string.network_4G : R.string.network_lte);
-                    } else {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager
-                                        .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-                        mButtonEnabledNetworks.setSummary(R.string.network_global);
-                    }
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
-                    if (isWorldMode()) {
-                        mButtonEnabledNetworks.setSummary(
-                                R.string.preferred_network_mode_lte_cdma_summary);
-                        controlCdmaOptions(true);
-                        controlGsmOptions(false);
-                    } else {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO));
-                        mButtonEnabledNetworks.setSummary(R.string.network_lte);
-                    }
-                    break;
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                    mButtonEnabledNetworks.setValue(
-                            Integer.toString(TelephonyManager
-                                    .NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
-                    mButtonEnabledNetworks.setSummary(R.string.network_3G);
-                    break;
-                case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
-                case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
-                case TelephonyManager.NETWORK_MODE_GLOBAL:
-                    mButtonEnabledNetworks.setValue(
-                            Integer.toString(TelephonyManager.NETWORK_MODE_CDMA_EVDO));
-                    mButtonEnabledNetworks.setSummary(R.string.network_3G);
-                    break;
-                case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
-                    mButtonEnabledNetworks.setValue(
-                            Integer.toString(TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO));
-                    mButtonEnabledNetworks.setSummary(R.string.network_1x);
-                    break;
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
-                    mButtonEnabledNetworks.setValue(
-                            Integer.toString(TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY));
-                    mButtonEnabledNetworks.setSummary(R.string.network_3G);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
-                    if (isSupportTdscdma()) {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager
-                                        .NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
-                        mButtonEnabledNetworks.setSummary(R.string.network_lte);
-                    } else {
-                        if (isWorldMode()) {
-                            controlCdmaOptions(true);
-                            controlGsmOptions(false);
-                        }
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager
-                                        .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-                        if (mTelephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
-                                || mIsGlobalCdma
-                                || isWorldMode()) {
-                            mButtonEnabledNetworks.setSummary(R.string.network_global);
-                        } else {
-                            mButtonEnabledNetworks.setSummary((mShow4GForLTE == true)
-                                    ? R.string.network_4G : R.string.network_lte);
-                        }
-                    }
-                    break;
-                default:
-                    String errMsg = "Invalid Network Mode (" + NetworkMode + "). Ignore.";
-                    loge(errMsg);
-                    mButtonEnabledNetworks.setSummary(errMsg);
-            }
-        }
-
-        @Override
-        public void onActivityResult(int requestCode, int resultCode, Intent data) {
-            switch(requestCode) {
-                case REQUEST_CODE_EXIT_ECM:
-                    if (resultCode != Activity.RESULT_CANCELED) {
-                        // If the phone exits from ECM mode, show the CDMA Options
-                        mCdmaOptions.showDialog(mClickedPreference);
-                    }
-                    break;
-
-                default:
-                    break;
-            }
-        }
-
-        private void updateWiFiCallState() {
-            if (mWiFiCallingPref == null || mCallingCategory == null) {
-                return;
-            }
-
-            // Removes the preference if the wifi calling is disabled.
-            if (!isWifiCallingEnabled(getContext(), mSubId)) {
-                mCallingCategory.removePreference(mWiFiCallingPref);
-                return;
-            }
-
-            // See what Telecom thinks the SIM call manager is.
-            final PhoneAccountHandle simCallManager =
-                    TelecomManager.from(getContext()).getSimCallManagerForSubscription(mSubId);
-
-            // Check which SIM call manager is for the current sub ID.
-            PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-            String currentSubSimCallManager = null;
-            if (carrierConfig != null) {
-                currentSubSimCallManager = carrierConfig.getString(
-                        CarrierConfigManager.KEY_DEFAULT_SIM_CALL_MANAGER_STRING);
-            }
-
-            // Only try to configure the phone account if this is the sim call manager for the
-            // current sub.
-            if (simCallManager != null
-                    && simCallManager.getComponentName().flattenToString().equals(
-                    currentSubSimCallManager)) {
-                Intent intent = MobileNetworkSettings.buildPhoneAccountConfigureIntent(
-                        getContext(), simCallManager);
-                PackageManager pm = getContext().getPackageManager();
-                List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
-                mWiFiCallingPref.setTitle(resolutions.get(0).loadLabel(pm));
-                mWiFiCallingPref.setSummary(null);
-                mWiFiCallingPref.setIntent(intent);
-            } else {
-                String title = SubscriptionManager.getResourcesForSubId(getContext(), mSubId)
-                        .getString(R.string.wifi_calling_settings_title);
-                mWiFiCallingPref.setTitle(title);
-
-                int resId = com.android.internal.R.string.wifi_calling_off_summary;
-                if (mImsMgr.isWfcEnabledByUser()) {
-                    boolean isRoaming = mTelephonyManager.isNetworkRoaming();
-                    int wfcMode = mImsMgr.getWfcMode(isRoaming);
-
-                    switch (wfcMode) {
-                        case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
-                            resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
-                            break;
-                        case ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED:
-                            resId = com.android.internal.R.string
-                                    .wfc_mode_cellular_preferred_summary;
-                            break;
-                        case ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED:
-                            resId = com.android.internal.R.string.wfc_mode_wifi_preferred_summary;
-                            break;
-                        default:
-                            if (DBG) log("Unexpected WFC mode value: " + wfcMode);
-                    }
-                }
-                mWiFiCallingPref.setSummary(resId);
-            }
-
-            mCallingCategory.addPreference(mWiFiCallingPref);
-            mWiFiCallingPref.setEnabled(mTelephonyManager.getCallState(mSubId)
-                    == TelephonyManager.CALL_STATE_IDLE && hasActiveSubscriptions());
-        }
-
-        private void updateEnhanced4gLteState() {
-            if (mButton4glte == null) {
-                return;
-            }
-
-            PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-
-            if ((mImsMgr == null
-                    || !mImsMgr.isVolteEnabledByPlatform()
-                    || !mImsMgr.isVolteProvisionedOnDevice()
-                    || !isImsServiceStateReady(mImsMgr)
-                    || carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL))) {
-                getPreferenceScreen().removePreference(mButton4glte);
-            } else {
-                mButton4glte.setEnabled(is4gLtePrefEnabled(carrierConfig)
-                        && hasActiveSubscriptions());
-                boolean enh4glteMode = mImsMgr.isEnhanced4gLteModeSettingEnabledByUser()
-                        && mImsMgr.isNonTtyOrTtyOnVolteEnabled();
-                mButton4glte.setChecked(enh4glteMode);
-            }
-        }
-
-        private void updateVideoCallState() {
-            if (mVideoCallingPref == null || mCallingCategory == null) {
-                return;
-            }
-
-            PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-
-            if (mImsMgr != null
-                    && mImsMgr.isVtEnabledByPlatform()
-                    && mImsMgr.isVtProvisionedOnDevice()
-                    && isImsServiceStateReady(mImsMgr)
-                    && (carrierConfig.getBoolean(
-                        CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
-                        || mTelephonyManager.isDataEnabled())) {
-                mCallingCategory.addPreference(mVideoCallingPref);
-                if (!mButton4glte.isChecked()) {
-                    mVideoCallingPref.setEnabled(false);
-                    mVideoCallingPref.setChecked(false);
-                } else {
-                    mVideoCallingPref.setEnabled(mTelephonyManager.getCallState(mSubId)
-                            == TelephonyManager.CALL_STATE_IDLE && hasActiveSubscriptions());
-                    mVideoCallingPref.setChecked(mImsMgr.isVtEnabledByUser());
-                    mVideoCallingPref.setOnPreferenceChangeListener(this);
-                }
-            } else {
-                mCallingCategory.removePreference(mVideoCallingPref);
-            }
-        }
-
-        private void updatePreferredNetworkType() {
-            boolean enabled = mTelephonyManager.getCallState(
-                    mSubId) == TelephonyManager.CALL_STATE_IDLE
-                    && hasActiveSubscriptions();
-            Log.i(LOG_TAG, "updatePreferredNetworkType: " + enabled);
-            // TODO: Disentangle enabled networks vs preferred network mode, it looks like
-            // both buttons are shown to the user as "Preferred network type" and the options change
-            // based on what looks like World mode.
-            if (mButtonEnabledNetworks != null) {
-                mButtonEnabledNetworks.setEnabled(enabled);
-            }
-            if (mButtonPreferredNetworkMode != null) {
-                mButtonPreferredNetworkMode.setEnabled(enabled);
-            }
-        }
-
-        private void updateCallingCategory() {
-            if (mCallingCategory == null) {
-                return;
-            }
-
-            updateWiFiCallState();
-            updateVideoCallState();
-
-            // If all items in calling category is removed, we remove it from
-            // the screen. Otherwise we'll see title of the category but nothing
-            // is in there.
-            if (mCallingCategory.getPreferenceCount() == 0) {
-                getPreferenceScreen().removePreference(mCallingCategory);
-            } else {
-                getPreferenceScreen().addPreference(mCallingCategory);
-            }
-        }
-
-        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);*/
-                getActivity().finish();
-                return true;
-            }
-            return super.onOptionsItemSelected(item);
-        }
-
-        private boolean isWorldMode() {
-            boolean worldModeOn = false;
-            final String configString = getResources().getString(R.string.config_world_mode);
-
-            if (!TextUtils.isEmpty(configString)) {
-                String[] configArray = configString.split(";");
-                // Check if we have World mode configuration set to True only or config is set to True
-                // and SIM GID value is also set and matches to the current SIM GID.
-                if (configArray != null &&
-                        ((configArray.length == 1 && configArray[0].equalsIgnoreCase("true"))
-                                || (configArray.length == 2 && !TextUtils.isEmpty(configArray[1])
-                                && mTelephonyManager != null
-                                && configArray[1].equalsIgnoreCase(
-                                        mTelephonyManager.getGroupIdLevel1())))) {
-                    worldModeOn = true;
-                }
-            }
-
-            Log.d(LOG_TAG, "isWorldMode=" + worldModeOn);
-
-            return worldModeOn;
-        }
-
-        private void controlGsmOptions(boolean enable) {
-            PreferenceScreen prefSet = getPreferenceScreen();
-            if (prefSet == null) {
-                return;
-            }
-
-            updateGsmUmtsOptions(this, prefSet, mSubId);
-
-            PreferenceCategory networkOperatorCategory =
-                    (PreferenceCategory) prefSet.findPreference(
-                            NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
-            Preference carrierSettings = prefSet.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
-            if (networkOperatorCategory != null) {
-                if (enable) {
-                    networkOperatorCategory.setEnabled(true);
-                } else {
-                    prefSet.removePreference(networkOperatorCategory);
-                }
-            }
-            if (carrierSettings != null) {
-                prefSet.removePreference(carrierSettings);
-            }
-        }
-
-        private void controlCdmaOptions(boolean enable) {
-            PreferenceScreen prefSet = getPreferenceScreen();
-            if (prefSet == null) {
-                return;
-            }
-            updateCdmaOptions(this, prefSet, mSubId);
-            CdmaSystemSelectListPreference systemSelect =
-                    (CdmaSystemSelectListPreference)prefSet.findPreference
-                            (BUTTON_CDMA_SYSTEM_SELECT_KEY);
-            systemSelect.setSubscriptionId(mSubId);
-            if (systemSelect != null) {
-                systemSelect.setEnabled(enable);
-            }
-        }
-
-        private boolean isSupportTdscdma() {
-            if (getResources().getBoolean(R.bool.config_support_tdscdma)) {
-                return true;
-            }
-
-            String operatorNumeric = mTelephonyManager.getServiceState().getOperatorNumeric();
-            String[] numericArray = getResources().getStringArray(
-                    R.array.config_support_tdscdma_roaming_on_networks);
-            if (numericArray.length == 0 || operatorNumeric == null) {
-                return false;
-            }
-            for (String numeric : numericArray) {
-                if (operatorNumeric.equals(numeric)) {
-                    return true;
-                }
-            }
-            return false;
-        }
-
-        /**
-         * Metrics events related methods. it takes care of all preferences possible in this
-         * fragment(except a few that log on their own). It doesn't only include preferences in
-         * network_setting_fragment.xml, but also those defined in GsmUmtsOptions and CdmaOptions.
-         */
-        private void sendMetricsEventPreferenceClicked(
-                PreferenceScreen preferenceScreen, Preference preference) {
-            final int category = getMetricsEventCategory(preferenceScreen, preference);
-            if (category == MetricsEvent.VIEW_UNKNOWN) {
-                return;
-            }
-
-            // Send MetricsEvent on click. It includes preferences other than SwitchPreferences,
-            // which send MetricsEvent in onPreferenceChange.
-            // For ListPreferences, we log it here without a value, only indicating it's clicked to
-            // open the list dialog. When a value is chosen, another MetricsEvent is logged with
-            // new value in onPreferenceChange.
-            if (preference == mLteDataServicePref || preference == mDataUsagePref
-                    || preference == mEuiccSettingsPref || preference == mAdvancedOptions
-                    || preference == mWiFiCallingPref || preference == mButtonPreferredNetworkMode
-                    || preference == mButtonEnabledNetworks
-                    || preference == preferenceScreen.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
-                    || preference == preferenceScreen.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)
-                    || preference == preferenceScreen.findPreference(BUTTON_GSM_APN_EXPAND_KEY)
-                    || preference == preferenceScreen.findPreference(BUTTON_CDMA_APN_EXPAND_KEY)
-                    || preference == preferenceScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY)) {
-                MetricsLogger.action(getContext(), category);
-            }
-        }
-
-        private void sendMetricsEventPreferenceChanged(
-                PreferenceScreen preferenceScreen, Preference preference, Object newValue) {
-            final int category = getMetricsEventCategory(preferenceScreen, preference);
-            if (category == MetricsEvent.VIEW_UNKNOWN) {
-                return;
-            }
-
-            // MetricsEvent logging with new value, for SwitchPreferences and ListPreferences.
-            if (preference == mButton4glte || preference == mVideoCallingPref) {
-                MetricsLogger.action(getContext(), category, (Boolean) newValue);
-            } else if (preference == mButtonPreferredNetworkMode
-                    || preference == mButtonEnabledNetworks
-                    || preference == preferenceScreen
-                            .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
-                    || preference == preferenceScreen
-                            .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
-                // Network select preference sends metrics event in its own listener.
-                MetricsLogger.action(getContext(), category, Integer.valueOf((String) newValue));
-            }
-        }
-
-        private int getMetricsEventCategory(
-                PreferenceScreen preferenceScreen, Preference preference) {
-
-            if (preference == null) {
-                return MetricsEvent.VIEW_UNKNOWN;
-            } else if (preference == mMobileDataPref) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_MOBILE_DATA_TOGGLE;
-            } else if (preference == mButtonDataRoam) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_DATA_ROAMING_TOGGLE;
-            } else if (preference == mDataUsagePref) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_DATA_USAGE;
-            } else if (preference == mLteDataServicePref) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_SET_UP_DATA_SERVICE;
-            } else if (preference == mAdvancedOptions) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_EXPAND_ADVANCED_FIELDS;
-            } else if (preference == mButton4glte) {
-                return MetricsEvent.ACTION_MOBILE_ENHANCED_4G_LTE_MODE_TOGGLE;
-            } else if (preference == mButtonPreferredNetworkMode) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_SELECT_PREFERRED_NETWORK;
-            } else if (preference == mButtonEnabledNetworks) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_SELECT_ENABLED_NETWORK;
-            } else if (preference == mEuiccSettingsPref) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_EUICC_SETTING;
-            } else if (preference == mWiFiCallingPref) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_WIFI_CALLING;
-            } else if (preference == mVideoCallingPref) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_VIDEO_CALLING_TOGGLE;
-            } else if (preference == preferenceScreen
-                            .findPreference(NetworkOperators.BUTTON_AUTO_SELECT_KEY)) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_AUTO_SELECT_NETWORK_TOGGLE;
-            } else if (preference == preferenceScreen
-                            .findPreference(NetworkOperators.BUTTON_NETWORK_SELECT_KEY)) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK;
-            } else if (preference == preferenceScreen
-                            .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_CDMA_SYSTEM_SELECT;
-            } else if (preference == preferenceScreen
-                            .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_CDMA_SUBSCRIPTION_SELECT;
-            } else if (preference == preferenceScreen.findPreference(BUTTON_GSM_APN_EXPAND_KEY)
-                    || preference == preferenceScreen.findPreference(BUTTON_CDMA_APN_EXPAND_KEY)) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS;
-            } else if (preference == preferenceScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY)) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_CARRIER_SETTINGS;
-            } else {
-                return MetricsEvent.VIEW_UNKNOWN;
-            }
-        }
-
-        private void updateGsmUmtsOptions(PreferenceFragment prefFragment,
-                PreferenceScreen prefScreen, final int subId) {
-            // We don't want to re-create GsmUmtsOptions if already exists. Otherwise, the
-            // preferences inside it will also be re-created which causes unexpected behavior.
-            // For example, the open dialog gets dismissed or detached after pause / resume.
-            if (mGsmUmtsOptions == null) {
-                mGsmUmtsOptions = new GsmUmtsOptions(prefFragment, prefScreen, subId);
-            } else {
-                mGsmUmtsOptions.update(subId);
-            }
-        }
-
-        private void updateCdmaOptions(PreferenceFragment prefFragment, PreferenceScreen prefScreen,
-                int subId) {
-            // We don't want to re-create CdmaOptions if already exists. Otherwise, the preferences
-            // inside it will also be re-created which causes unexpected behavior. For example,
-            // the open dialog gets dismissed or detached after pause / resume.
-            if (mCdmaOptions == null) {
-                mCdmaOptions = new CdmaOptions(prefFragment, prefScreen, subId);
-            } else {
-                mCdmaOptions.updateSubscriptionId(subId);
-            }
-        }
-    }
-
-    private static final class SetPreferredNetworkAsyncTask extends AsyncTask<Void, Void, Boolean> {
-
-        private final TelephonyManager mTelephonyManager;
-        private final int mSubId;
-        private final int mNetworkType;
-        private final Message mCallback;
-
-        SetPreferredNetworkAsyncTask(
-                TelephonyManager tm, int subId, int networkType, Message callback) {
-            mTelephonyManager = tm;
-            mSubId = subId;
-            mNetworkType = networkType;
-            mCallback = callback;
-        }
-
-        @Override
-        protected Boolean doInBackground(Void... voids) {
-            return mTelephonyManager.setPreferredNetworkType(mSubId, mNetworkType);
-        }
-
-        @Override
-        protected void onPostExecute(Boolean isSuccessed) {
-            mCallback.obj = isSuccessed;
-            mCallback.sendToTarget();
-        }
-    }
-}
diff --git a/src/com/android/phone/NetworkOperatorPreference.java b/src/com/android/phone/NetworkOperatorPreference.java
deleted file mode 100644
index 09c494c..0000000
--- a/src/com/android/phone/NetworkOperatorPreference.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2018 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.Color;
-import android.graphics.drawable.ColorDrawable;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.LayerDrawable;
-import android.preference.Preference;
-import android.telephony.CellInfo;
-import android.telephony.SignalStrength;
-import android.util.Log;
-import android.view.Gravity;
-
-import com.android.settingslib.graph.SignalDrawable;
-
-import java.util.List;
-
-/**
- * A Preference represents a network operator in the NetworkSelectSetting fragment.
- */
-public class NetworkOperatorPreference extends Preference {
-
-    private static final String TAG = "NetworkOperatorPref";
-    private static final boolean DBG = false;
-    // number of signal strength level
-    public static final int NUMBER_OF_LEVELS = SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
-    private CellInfo mCellInfo;
-    private List<String> mForbiddenPlmns;
-    private int mLevel = -1;
-    private boolean mShow4GForLTE;
-
-    // The following constants are used to draw signal icon.
-    private static final Drawable EMPTY_DRAWABLE = new ColorDrawable(Color.TRANSPARENT);
-    private static final int NO_CELL_DATA_CONNECTED_ICON = 0;
-
-    public NetworkOperatorPreference(
-            CellInfo cellinfo, Context context, List<String> forbiddenPlmns, boolean show4GForLTE) {
-        super(context);
-        mCellInfo = cellinfo;
-        mForbiddenPlmns = forbiddenPlmns;
-        mShow4GForLTE = show4GForLTE;
-        refresh();
-    }
-
-    public CellInfo getCellInfo() {
-        return mCellInfo;
-    }
-
-    /**
-     * Refresh the NetworkOperatorPreference by updating the title and the icon.
-     */
-    public void refresh() {
-        if (DBG) Log.d(TAG, "refresh the network: " + CellInfoUtil.getNetworkTitle(mCellInfo));
-        String networkTitle = CellInfoUtil.getNetworkTitle(mCellInfo);
-        if (CellInfoUtil.isForbidden(mCellInfo, mForbiddenPlmns)) {
-            networkTitle += " " + getContext().getResources().getString(R.string.forbidden_network);
-        }
-        setTitle(networkTitle);
-        int level = mCellInfo.getCellSignalStrength().getLevel();
-        if (DBG) Log.d(TAG, "refresh level: " + String.valueOf(level));
-        if (mLevel != level) {
-            mLevel = level;
-            updateIcon(mLevel);
-        }
-    }
-
-    /**
-     * Update the icon according to the input signal strength level.
-     */
-    public void setIcon(int level) {
-        updateIcon(level);
-    }
-
-    private int getIconIdForCell(CellInfo ci) {
-        final int type = ci.getCellIdentity().getType();
-        switch (type) {
-            case CellInfo.TYPE_GSM: return R.drawable.signal_strength_g;
-            case CellInfo.TYPE_WCDMA: // fall through
-            case CellInfo.TYPE_TDSCDMA: return R.drawable.signal_strength_3g;
-            case CellInfo.TYPE_LTE:
-                return mShow4GForLTE
-                        ? R.drawable.signal_strength_4g : R.drawable.signal_strength_lte;
-            case CellInfo.TYPE_CDMA: return R.drawable.signal_strength_1x;
-            default: return 0;
-        }
-    }
-
-    private void updateIcon(int level) {
-        if (level < 0 || level >= NUMBER_OF_LEVELS) return;
-        Context context = getContext();
-        // Make the signal strength drawable
-        int iconId = 0;
-        if (DBG) Log.d(TAG, "updateIcon level: " + String.valueOf(level));
-        iconId = SignalDrawable.getState(level, NUMBER_OF_LEVELS, false /* cutOut */);
-
-        SignalDrawable signalDrawable = new SignalDrawable(getContext());
-        signalDrawable.setLevel(iconId);
-        signalDrawable.setDarkIntensity(0);
-
-        // Make the network type drawable
-        int iconType = getIconIdForCell(mCellInfo);
-        Drawable networkDrawable =
-                iconType == NO_CELL_DATA_CONNECTED_ICON
-                        ? EMPTY_DRAWABLE
-                        : getContext()
-                        .getResources().getDrawable(iconType, getContext().getTheme());
-
-        // Overlay the two drawables
-        Drawable[] layers = {networkDrawable, signalDrawable};
-        final int iconSize =
-                context.getResources().getDimensionPixelSize(R.dimen.signal_strength_icon_size);
-
-        LayerDrawable icons = new LayerDrawable(layers);
-        // Set the network type icon at the top left
-        icons.setLayerGravity(0 /* index of networkDrawable */, Gravity.TOP | Gravity.LEFT);
-        // Set the signal strength icon at the bottom right
-        icons.setLayerGravity(1 /* index of SignalDrawable */, Gravity.BOTTOM | Gravity.RIGHT);
-        icons.setLayerSize(1 /* index of SignalDrawable */, iconSize, iconSize);
-        setIcon(icons);
-    }
-}
diff --git a/src/com/android/phone/NetworkOperators.java b/src/com/android/phone/NetworkOperators.java
deleted file mode 100644
index ec71656..0000000
--- a/src/com/android/phone/NetworkOperators.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * 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.ProgressDialog;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Handler;
-import android.os.Message;
-import android.preference.Preference;
-import android.preference.PreferenceCategory;
-import android.preference.TwoStatePreference;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.widget.Toast;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settingslib.utils.ThreadUtils;
-
-/**
- * "Networks" settings UI for the Phone app.
- */
-public class NetworkOperators extends PreferenceCategory
-        implements Preference.OnPreferenceChangeListener {
-
-    private static final String LOG_TAG = "NetworkOperators";
-    private static final boolean DBG = true;
-
-    private static final int EVENT_AUTO_SELECT_DONE = 100;
-    private static final int EVENT_GET_NETWORK_SELECTION_MODE_DONE = 200;
-
-    //String keys for preference lookup
-    public static final String BUTTON_NETWORK_SELECT_KEY = "button_network_select_key";
-    public static final String BUTTON_AUTO_SELECT_KEY = "button_auto_select_key";
-    public static final String BUTTON_CHOOSE_NETWORK_KEY = "button_choose_network_key";
-    public static final String CATEGORY_NETWORK_OPERATORS_KEY = "network_operators_category_key";
-
-    //preference objects
-    private NetworkSelectListPreference mNetworkSelect;
-    private TwoStatePreference mAutoSelect;
-    private Preference mChooseNetwork;
-    private ProgressDialog mProgressDialog;
-
-    private int mSubId;
-    private TelephonyManager mTelephonyManager;
-
-    // There's two sets of Auto-Select UI in this class.
-    // If {@code com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI} set as true
-    // {@link mChooseNetwork} will be used, otherwise {@link mNetworkSelect} will be used.
-    boolean mEnableNewManualSelectNetworkUI;
-
-    public NetworkOperators(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public NetworkOperators(Context context) {
-        super(context);
-    }
-
-    /**
-     * Initialize NetworkOperators instance.
-     */
-    public void initialize() {
-        mEnableNewManualSelectNetworkUI = getContext().getResources().getBoolean(
-                com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI);
-        mAutoSelect = (TwoStatePreference) findPreference(BUTTON_AUTO_SELECT_KEY);
-        mChooseNetwork = findPreference(BUTTON_CHOOSE_NETWORK_KEY);
-        mNetworkSelect = (NetworkSelectListPreference) findPreference(BUTTON_NETWORK_SELECT_KEY);
-        if (mEnableNewManualSelectNetworkUI) {
-            removePreference(mNetworkSelect);
-        } else {
-            removePreference(mChooseNetwork);
-        }
-        mProgressDialog = new ProgressDialog(getContext());
-        mTelephonyManager = TelephonyManager.from(getContext());
-    }
-
-    /**
-     * Update NetworkOperators instance if like subId is updated.
-     *
-     * @param subId Corresponding subscription ID of this network.
-     */
-    protected void update(final int subId) {
-        mSubId = subId;
-        mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
-
-        if (mAutoSelect != null) {
-            mAutoSelect.setOnPreferenceChangeListener(this);
-        }
-
-        if (mEnableNewManualSelectNetworkUI) {
-            if (mChooseNetwork != null) {
-                ServiceState ss = mTelephonyManager.getServiceState();
-                if (ss != null && ss.getState() == ServiceState.STATE_IN_SERVICE) {
-                    mChooseNetwork.setSummary(mTelephonyManager.getNetworkOperatorName());
-                } else {
-                    mChooseNetwork.setSummary(R.string.network_disconnected);
-                }
-            }
-        } else {
-            if (mNetworkSelect != null) {
-                mNetworkSelect.initialize(mSubId, this, mProgressDialog);
-            }
-        }
-        getNetworkSelectionMode();
-    }
-
-    /**
-     * Implemented to support onPreferenceChangeListener to look for preference
-     * changes specifically on auto select button.
-     *
-     * @param preference is the preference to be changed, should be auto select button.
-     * @param newValue   should be the value of whether autoSelect is checked.
-     */
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        if (preference == mAutoSelect) {
-            boolean autoSelect = (Boolean) newValue;
-            if (DBG) logd("onPreferenceChange autoSelect: " + String.valueOf(autoSelect));
-            selectNetworkAutomatic(autoSelect);
-            MetricsLogger.action(getContext(),
-                    MetricsEvent.ACTION_MOBILE_NETWORK_AUTO_SELECT_NETWORK_TOGGLE, autoSelect);
-            return true;
-        }
-        return false;
-    }
-
-    private final Handler mHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case EVENT_AUTO_SELECT_DONE:
-                    mAutoSelect.setEnabled(true);
-                    dismissProgressBar();
-
-                    boolean isSuccessed = (boolean) msg.obj;
-
-                    if (isSuccessed) {
-                        if (DBG) logd("automatic network selection: succeeded!");
-                        displayNetworkSelectionSucceeded();
-                    } else {
-                        if (DBG) logd("automatic network selection: failed!");
-                        displayNetworkSelectionFailed();
-                    }
-
-                    break;
-                case EVENT_GET_NETWORK_SELECTION_MODE_DONE:
-                    int networkSelectionMode = msg.arg1;
-                    if (networkSelectionMode == TelephonyManager.NETWORK_SELECTION_MODE_UNKNOWN) {
-                        if (DBG) logd("get network selection mode: failed!");
-                    } else {
-                        boolean autoSelect = networkSelectionMode
-                                == TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
-                        if (DBG) {
-                            logd("get network selection mode: "
-                                    + (autoSelect ? "auto" : "manual") + " selection");
-                        }
-                        if (mAutoSelect != null) {
-                            mAutoSelect.setChecked(autoSelect);
-                        }
-                        if (mEnableNewManualSelectNetworkUI) {
-                            if (mChooseNetwork != null) {
-                                mChooseNetwork.setEnabled(!autoSelect);
-                            }
-                        } else {
-                            if (mNetworkSelect != null) {
-                                mNetworkSelect.setEnabled(!autoSelect);
-                            }
-                        }
-                    }
-            }
-            return;
-        }
-    };
-
-    // Used by both mAutoSelect and mNetworkSelect buttons.
-    protected void displayNetworkSelectionFailed() {
-        Toast.makeText(getContext(), R.string.connect_later, Toast.LENGTH_LONG).show();
-    }
-
-    // Used by both mAutoSelect and mNetworkSelect buttons.
-    protected void displayNetworkSelectionSucceeded() {
-        Toast.makeText(getContext(), R.string.registration_done, Toast.LENGTH_LONG).show();
-    }
-
-    private void selectNetworkAutomatic(boolean autoSelect) {
-        if (DBG) logd("selectNetworkAutomatic: " + String.valueOf(autoSelect));
-
-        if (autoSelect) {
-            if (mEnableNewManualSelectNetworkUI) {
-                if (mChooseNetwork != null) {
-                    mChooseNetwork.setEnabled(!autoSelect);
-                }
-            } else {
-                if (mNetworkSelect != null) {
-                    mNetworkSelect.setEnabled(!autoSelect);
-                }
-            }
-            if (DBG) logd("select network automatically...");
-            showAutoSelectProgressBar();
-            mAutoSelect.setEnabled(false);
-            if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
-                ThreadUtils.postOnBackgroundThread(() -> {
-                    mTelephonyManager.setNetworkSelectionModeAutomatic();
-                    // Because TelephonyManager#setNetworkSelectionModeAutomatic doesn't have a
-                    // return value, we query the current network selection mode to tell if the
-                    // TelephonyManager#setNetworkSelectionModeAutomatic is successed.
-                    int networkSelectionMode = mTelephonyManager.getNetworkSelectionMode();
-                    Message msg = mHandler.obtainMessage(EVENT_AUTO_SELECT_DONE);
-                    msg.obj = networkSelectionMode == TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
-                    msg.sendToTarget();
-                });
-            }
-        } else {
-            if (mEnableNewManualSelectNetworkUI) {
-                if (mChooseNetwork != null) {
-                    // Open the choose Network page automatically when user turn off the auto-select
-                    openChooseNetworkPage();
-                }
-            } else {
-                if (mNetworkSelect != null) {
-                    mNetworkSelect.onClick();
-                }
-            }
-        }
-    }
-
-    protected void getNetworkSelectionMode() {
-        if (DBG) logd("getting network selection mode...");
-        ThreadUtils.postOnBackgroundThread(() -> {
-            int networkSelectionMode = mTelephonyManager.getNetworkSelectionMode();
-            Message msg = mHandler.obtainMessage(EVENT_GET_NETWORK_SELECTION_MODE_DONE);
-            msg.arg1 = networkSelectionMode;
-            msg.sendToTarget();
-        });
-    }
-
-    private void dismissProgressBar() {
-        if (mProgressDialog != null && mProgressDialog.isShowing()) {
-            mProgressDialog.dismiss();
-        }
-    }
-
-    private void showAutoSelectProgressBar() {
-        mProgressDialog.setMessage(
-                getContext().getResources().getString(R.string.register_automatically));
-        mProgressDialog.setCanceledOnTouchOutside(false);
-        mProgressDialog.setCancelable(false);
-        mProgressDialog.setIndeterminate(true);
-        mProgressDialog.show();
-    }
-
-    /**
-     * Open the Choose network page via {@alink NetworkSelectSettingActivity}
-     */
-    public void openChooseNetworkPage() {
-        Intent intent = NetworkSelectSettingActivity.getIntent(getContext(), mSubId);
-        getContext().startActivity(intent);
-    }
-
-    protected boolean preferenceTreeClick(Preference preference) {
-        if (mEnableNewManualSelectNetworkUI) {
-            if (DBG) logd("enable New AutoSelectNetwork UI");
-            if (preference == mChooseNetwork) {
-                openChooseNetworkPage();
-            }
-            return (preference == mAutoSelect || preference == mChooseNetwork);
-        } else {
-            return (preference == mAutoSelect || preference == mNetworkSelect);
-        }
-    }
-
-    private void logd(String msg) {
-        Log.d(LOG_TAG, "[NetworksList] " + msg);
-    }
-
-    private void loge(String msg) {
-        Log.e(LOG_TAG, "[NetworksList] " + msg);
-    }
-}
diff --git a/src/com/android/phone/NetworkQueryService.java b/src/com/android/phone/NetworkQueryService.java
deleted file mode 100644
index e67582f..0000000
--- a/src/com/android/phone/NetworkQueryService.java
+++ /dev/null
@@ -1,409 +0,0 @@
-/*
- * 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.Context;
-import android.content.Intent;
-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 android.telephony.AccessNetworkConstants;
-import android.telephony.CellIdentityGsm;
-import android.telephony.CellInfo;
-import android.telephony.CellInfoGsm;
-import android.telephony.NetworkScan;
-import android.telephony.NetworkScanRequest;
-import android.telephony.RadioAccessSpecifier;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.telephony.TelephonyScanManager;
-import android.util.Log;
-
-import com.android.internal.telephony.CellNetworkScanResult;
-import com.android.internal.telephony.OperatorInfo;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 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 = true;
-
-    // static events
-    private static final int EVENT_NETWORK_SCAN_VIA_PHONE_COMPLETED = 100;
-    private static final int EVENT_NETWORK_SCAN_RESULTS = 200;
-    private static final int EVENT_NETWORK_SCAN_ERROR = 300;
-    private static final int EVENT_NETWORK_SCAN_COMPLETED = 400;
-
-    // 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;
-
-    static final String ACTION_LOCAL_BINDER = "com.android.phone.intent.action.LOCAL_BINDER";
-
-    /** state of the query service */
-    private int mState;
-
-    private NetworkScan mNetworkScan;
-
-    // NetworkScanRequest parameters
-    private static final int SCAN_TYPE = NetworkScanRequest.SCAN_TYPE_ONE_SHOT;
-    private static final boolean INCREMENTAL_RESULTS = true;
-    // The parameters below are in seconds
-    private static final int SEARCH_PERIODICITY_SEC = 5;
-    private static final int MAX_SEARCH_TIME_SEC = 300;
-    private static final int INCREMENTAL_RESULTS_PERIODICITY_SEC = 3;
-
-    /**
-     * 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_VIA_PHONE_COMPLETED:
-                    if (DBG) log("scan via Phone completed, broadcasting results");
-                    broadcastQueryResults(msg);
-                    break;
-
-                case EVENT_NETWORK_SCAN_RESULTS:
-                    if (DBG) log("get scan results, broadcasting results");
-                    broadcastQueryResults(msg);
-                    break;
-
-                case EVENT_NETWORK_SCAN_ERROR:
-                    if (DBG) log("get scan error, broadcasting error code");
-                    broadcastQueryResults(msg);
-                    break;
-
-                case EVENT_NETWORK_SCAN_COMPLETED:
-                    if (DBG) log("network scan or stop network query completed");
-                    broadcastQueryResults(msg);
-                    break;
-            }
-        }
-    };
-
-    /**
-     * List of callback objects, also used to synchronize access to 
-     * itself and to changes in state.
-     */
-    final RemoteCallbackList<INetworkQueryServiceCallback> mCallbacks =
-            new RemoteCallbackList<INetworkQueryServiceCallback>();
-
-    /**
-     * This implementation of NetworkScanCallbackImpl is used to receive callback notifications from
-     * the Telephony Manager.
-     */
-    public class NetworkScanCallbackImpl extends TelephonyScanManager.NetworkScanCallback {
-
-        /** Returns the scan results to the user, this callback will be called at least one time. */
-        public void onResults(List<CellInfo> results) {
-            if (DBG) log("got network scan results: " + results.size());
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_RESULTS, results);
-            msg.sendToTarget();
-        }
-
-        /**
-         * Informs the user that the scan has stopped.
-         *
-         * This callback will be called when the scan is finished or cancelled by the user.
-         * The related NetworkScanRequest will be deleted after this callback.
-         */
-        public void onComplete() {
-            if (DBG) log("network scan completed");
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED);
-            msg.sendToTarget();
-        }
-
-        /**
-         * Informs the user that there is some error about the scan.
-         *
-         * This callback will be called whenever there is any error about the scan, and the scan
-         * will be terminated. onComplete() will NOT be called.
-         */
-        public void onError(int error) {
-            if (DBG) log("network scan got error: " + error);
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_ERROR, error, 0 /* arg2 */);
-            msg.sendToTarget();
-        }
-    }
-
-    /**
-     * 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, int subId, boolean isIncrementalResult) {
-            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:
-
-                            if (isIncrementalResult) {
-                                if (DBG) log("start network scan via TelephonManager");
-                                TelephonyManager tm = (TelephonyManager) getSystemService(
-                                        Context.TELEPHONY_SERVICE);
-                                // The Radio Access Specifiers below are meant to scan
-                                // all the bands for all the supported technologies.
-                                RadioAccessSpecifier gsm = new RadioAccessSpecifier(
-                                        AccessNetworkConstants.AccessNetworkType.GERAN,
-                                        null /* bands */,
-                                        null /* channels */);
-                                RadioAccessSpecifier lte = new RadioAccessSpecifier(
-                                        AccessNetworkConstants.AccessNetworkType.EUTRAN,
-                                        null /* bands */,
-                                        null /* channels */);
-                                RadioAccessSpecifier wcdma = new RadioAccessSpecifier(
-                                        AccessNetworkConstants.AccessNetworkType.UTRAN,
-                                        null /* bands */,
-                                        null /* channels */);
-                                RadioAccessSpecifier[] radioAccessSpecifier = {gsm, lte, wcdma};
-                                NetworkScanRequest networkScanRequest = new NetworkScanRequest(
-                                        SCAN_TYPE,
-                                        radioAccessSpecifier,
-                                        SEARCH_PERIODICITY_SEC,
-                                        MAX_SEARCH_TIME_SEC,
-                                        INCREMENTAL_RESULTS,
-                                        INCREMENTAL_RESULTS_PERIODICITY_SEC,
-                                        null /* List of PLMN ids (MCC-MNC) */);
-
-                                // Construct a NetworkScanCallback
-                                NetworkQueryService.NetworkScanCallbackImpl
-                                        networkScanCallback =
-                                        new NetworkQueryService.NetworkScanCallbackImpl();
-
-                                // Request network scan
-                                mNetworkScan = tm.requestNetworkScan(networkScanRequest,
-                                        networkScanCallback);
-                                mState = QUERY_IS_RUNNING;
-                            } else {
-                                if (SubscriptionManager.isValidSubscriptionId(subId)) {
-                                    mState = QUERY_IS_RUNNING;
-                                    ThreadUtils.postOnBackgroundThread(() -> {
-                                        if (DBG) log("start network scan via Phone xxx");
-                                        TelephonyManager telephonyManager =
-                                                TelephonyManager.from(getApplicationContext())
-                                                        .createForSubscriptionId(subId);
-                                        CellNetworkScanResult result =
-                                                telephonyManager.getAvailableNetworks();
-                                        Message msg = mHandler.obtainMessage(
-                                                EVENT_NETWORK_SCAN_VIA_PHONE_COMPLETED);
-                                        msg.obj = result;
-                                        msg.sendToTarget();
-                                    });
-                                } else {
-                                    if (DBG) {
-                                        log("SubscriptionId is invalid");
-                                    }
-                                }
-                            }
-
-                            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() {
-            if (DBG) log("stop network query");
-            // Tells the RIL to terminate the query request.
-            if (mNetworkScan != null) {
-                try {
-                    mNetworkScan.stop();
-                    mState = QUERY_READY;
-                } catch (RemoteException e) {
-                    if (DBG) log("stop mNetworkScan failed");
-                } catch (IllegalArgumentException e) {
-                    // Do nothing, scan has already completed.
-                }
-            }
-        }
-
-        /**
-         * Unregisters the callback without impacting an underlying query.
-         */
-        public void unregisterCallback(INetworkQueryServiceCallback cb) {
-            if (cb != null) {
-                synchronized (mCallbacks) {
-                    if (DBG) log("unregistering callback " + cb.getClass().toString());
-                    mCallbacks.unregister(cb);
-                }
-            }
-        }
-    };
-
-    @Override
-    public void onCreate() {
-        mState = QUERY_READY;
-    }
-
-    /**
-     * Required for service implementation.
-     */
-    @Override
-    public void onStart(Intent intent, int startId) {
-    }
-
-    /**
-     * Handle the bind request.
-     */
-    @Override
-    public IBinder onBind(Intent intent) {
-        if (DBG) log("binding service implementation");
-        if (ACTION_LOCAL_BINDER.equals(intent.getAction())) {
-            return mLocalBinder;
-        }
-
-        return mBinder;
-    }
-
-    /**
-     * Broadcast the results from the query to all registered callback objects.
-     */
-    private void broadcastQueryResults(Message msg) {
-        // reset the state.
-        synchronized (mCallbacks) {
-            mState = QUERY_READY;
-
-            // 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 {
-                    switch (msg.what) {
-                        case EVENT_NETWORK_SCAN_VIA_PHONE_COMPLETED:
-                            CellNetworkScanResult result = (CellNetworkScanResult) msg.obj;
-                            if (result.getOperators() != null) {
-                                cb.onResults(getCellInfoList(result.getOperators()));
-                            } else {
-                                if (DBG) log("Operators list is null.");
-                            }
-                            // Send the onComplete() callback to indicate the one-time network
-                            // scan has completed.
-                            cb.onComplete();
-                            break;
-
-                        case EVENT_NETWORK_SCAN_RESULTS:
-                            cb.onResults((List<CellInfo>) msg.obj);
-                            break;
-
-                        case EVENT_NETWORK_SCAN_COMPLETED:
-                            cb.onComplete();
-                            break;
-
-                        case EVENT_NETWORK_SCAN_ERROR:
-                            cb.onError(msg.arg1);
-                            break;
-                    }
-                } catch (RemoteException e) {
-                }
-            }
-
-            // finish up.
-            mCallbacks.finishBroadcast();
-        }
-    }
-
-    /**
-     * Wraps up a list of OperatorInfo object to a list of CellInfo object. GsmCellInfo is used here
-     * only because operatorInfo does not contain technology type while CellInfo is an abstract
-     * object that requires to specify technology type. It doesn't matter which CellInfo type to
-     * use here, since we only want to wrap the operator info and PLMN to a CellInfo object.
-     */
-    private List<CellInfo> getCellInfoList(List<OperatorInfo> operatorInfoList) {
-        List<CellInfo> cellInfoList = new ArrayList<>();
-        for (OperatorInfo oi: operatorInfoList) {
-            String operatorNumeric = oi.getOperatorNumeric();
-            String mcc = null;
-            String mnc = null;
-            log("operatorNumeric: " + operatorNumeric);
-            if (operatorNumeric != null && operatorNumeric.matches("^[0-9]{5,6}$")) {
-                mcc = operatorNumeric.substring(0, 3);
-                mnc = operatorNumeric.substring(3);
-            }
-            CellIdentityGsm cig = new CellIdentityGsm(
-                    Integer.MAX_VALUE /* lac */,
-                    Integer.MAX_VALUE /* cid */,
-                    Integer.MAX_VALUE /* arfcn */,
-                    Integer.MAX_VALUE /* bsic */,
-                    mcc,
-                    mnc,
-                    oi.getOperatorAlphaLong(),
-                    oi.getOperatorAlphaShort());
-
-            CellInfoGsm ci = new CellInfoGsm();
-            ci.setCellIdentity(cig);
-            cellInfoList.add(ci);
-        }
-        return cellInfoList;
-    }
-
-    private static void log(String msg) {
-        Log.d(LOG_TAG, msg);
-    }
-}
\ No newline at end of file
diff --git a/src/com/android/phone/NetworkScanHelper.java b/src/com/android/phone/NetworkScanHelper.java
deleted file mode 100644
index a21f547..0000000
--- a/src/com/android/phone/NetworkScanHelper.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Copyright (C) 2018 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.annotation.IntDef;
-import android.telephony.AccessNetworkConstants.AccessNetworkType;
-import android.telephony.CellInfo;
-import android.telephony.NetworkScan;
-import android.telephony.NetworkScanRequest;
-import android.telephony.RadioAccessSpecifier;
-import android.telephony.TelephonyManager;
-import android.telephony.TelephonyScanManager;
-import android.util.Log;
-
-import com.android.internal.telephony.CellNetworkScanResult;
-
-import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.SettableFuture;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.List;
-import java.util.concurrent.Executor;
-import java.util.stream.Collectors;
-
-/**
- * A helper class that builds the common interface and performs the network scan for two different
- * network scan APIs.
- */
-public class NetworkScanHelper {
-    public static final String TAG = "NetworkScanHelper";
-    private static final boolean DBG = true;
-
-    /**
-     * Callbacks interface to inform the network scan results.
-     */
-    public interface NetworkScanCallback {
-        /**
-         * Called when the results is returned from {@link TelephonyManager}. This method will be
-         * called at least one time if there is no error occurred during the network scan.
-         *
-         * <p> This method can be called multiple times in one network scan, until
-         * {@link #onComplete()} or {@link #onError(int)} is called.
-         *
-         * @param results
-         */
-        void onResults(List<CellInfo> results);
-
-        /**
-         * Called when the current network scan process is finished. No more
-         * {@link #onResults(List)} will be called for the current network scan after this method is
-         * called.
-         */
-        void onComplete();
-
-        /**
-         * Called when an error occurred during the network scan process.
-         *
-         * <p> There is no more result returned from {@link TelephonyManager} if an error occurred.
-         *
-         * <p> {@link #onComplete()} will not be called if an error occurred.
-         *
-         * @see {@link android.telephony.NetworkScan.ScanErrorCode}
-         */
-        void onError(int errorCode);
-    }
-
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef({NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS, NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS})
-    public @interface NetworkQueryType {}
-
-    /**
-     * Performs the network scan using {@link TelephonyManager#getAvailableNetworks()}. The network
-     * scan results won't be returned to the caller until the network scan is completed.
-     *
-     * <p> This is typically used when the modem doesn't support the new network scan api
-     * {@link TelephonyManager#requestNetworkScan(
-     * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)}.
-     */
-    public static final int NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS = 1;
-
-    /**
-     * Performs the network scan using {@link TelephonyManager#requestNetworkScan(
-     * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)} The network scan
-     * results will be returned to the caller periodically in a small time window until the network
-     * scan is completed. The complete results should be returned in the last called of
-     * {@link NetworkScanCallback#onResults(List)}.
-     *
-     * <p> This is recommended to be used if modem supports the new network scan api
-     * {@link TelephonyManager#requestNetworkScan(
-     * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)}
-     */
-    public static final int NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS = 2;
-
-    /** The constants below are used in the async network scan. */
-    private static final boolean INCREMENTAL_RESULTS = true;
-    private static final int SEARCH_PERIODICITY_SEC = 5;
-    private static final int MAX_SEARCH_TIME_SEC = 300;
-    private static final int INCREMENTAL_RESULTS_PERIODICITY_SEC = 3;
-
-    private static final NetworkScanRequest NETWORK_SCAN_REQUEST =
-            new NetworkScanRequest(
-                    NetworkScanRequest.SCAN_TYPE_ONE_SHOT,
-                    new RadioAccessSpecifier[]{
-                            // GSM
-                            new RadioAccessSpecifier(
-                                    AccessNetworkType.GERAN,
-                                    null /* bands */,
-                                    null /* channels */),
-                            // LTE
-                            new RadioAccessSpecifier(
-                                    AccessNetworkType.EUTRAN,
-                                    null /* bands */,
-                                    null /* channels */),
-                            // WCDMA
-                            new RadioAccessSpecifier(
-                                    AccessNetworkType.UTRAN,
-                                    null /* bands */,
-                                    null /* channels */)
-                    },
-                    SEARCH_PERIODICITY_SEC,
-                    MAX_SEARCH_TIME_SEC,
-                    INCREMENTAL_RESULTS,
-                    INCREMENTAL_RESULTS_PERIODICITY_SEC,
-                    null /* List of PLMN ids (MCC-MNC) */);
-
-    private final NetworkScanCallback mNetworkScanCallback;
-    private final TelephonyManager mTelephonyManager;
-    private final TelephonyScanManager.NetworkScanCallback mInternalNetworkScanCallback;
-    private final Executor mExecutor;
-
-    private NetworkScan mNetworkScanRequester;
-
-    /** Callbacks for sync network scan */
-    private ListenableFuture<List<CellInfo>> mNetworkScanFuture;
-
-    public NetworkScanHelper(TelephonyManager tm, NetworkScanCallback callback, Executor executor) {
-        mTelephonyManager = tm;
-        mNetworkScanCallback = callback;
-        mInternalNetworkScanCallback = new NetworkScanCallbackImpl();
-        mExecutor = executor;
-    }
-
-    /**
-     * Performs a network scan for the given type {@code type}.
-     * {@link #NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS} is recommended if modem supports
-     * {@link TelephonyManager#requestNetworkScan(
-     * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)}.
-     *
-     * @param type used to tell which network scan API should be used.
-     */
-    public void startNetworkScan(@NetworkQueryType int type) {
-        if (type == NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS) {
-            mNetworkScanFuture = SettableFuture.create();
-            Futures.addCallback(mNetworkScanFuture, new FutureCallback<List<CellInfo>>() {
-                @Override
-                public void onSuccess(List<CellInfo> result) {
-                    onResults(result);
-                    onComplete();
-                }
-
-                @Override
-                public void onFailure(Throwable t) {
-                    int errCode = Integer.parseInt(t.getMessage());
-                    onError(errCode);
-                }
-            });
-            mExecutor.execute(new NetworkScanSyncTask(
-                    mTelephonyManager, (SettableFuture) mNetworkScanFuture));
-        } else if (type == NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS) {
-            if (DBG) Log.d(TAG, "start network scan async");
-            mNetworkScanRequester = mTelephonyManager.requestNetworkScan(
-                    NETWORK_SCAN_REQUEST,
-                    mExecutor,
-                    mInternalNetworkScanCallback);
-        }
-    }
-
-    /**
-     * The network scan of type {@link #NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS} can't be stopped,
-     * however, the result of the current network scan won't be returned to the callback after
-     * calling this method.
-     */
-    public void stopNetworkQuery() {
-        if (mNetworkScanRequester != null) {
-            mNetworkScanRequester.stopScan();
-            mNetworkScanFuture = null;
-        }
-
-        if (mNetworkScanFuture != null) {
-            mNetworkScanFuture.cancel(true /* mayInterruptIfRunning */);
-            mNetworkScanFuture = null;
-        }
-    }
-
-    private void onResults(List<CellInfo> cellInfos) {
-        mNetworkScanCallback.onResults(cellInfos);
-    }
-
-    private void onComplete() {
-        mNetworkScanCallback.onComplete();
-    }
-
-    private void onError(int errCode) {
-        mNetworkScanCallback.onError(errCode);
-    }
-
-    /**
-     * Converts the status code of {@link CellNetworkScanResult} to one of the
-     * {@link android.telephony.NetworkScan.ScanErrorCode}.
-     * @param errCode status code from {@link CellNetworkScanResult}.
-     *
-     * @return one of the scan error code from {@link android.telephony.NetworkScan.ScanErrorCode}.
-     */
-    private static int convertToScanErrorCode(int errCode) {
-        switch (errCode) {
-            case CellNetworkScanResult.STATUS_RADIO_NOT_AVAILABLE:
-                return NetworkScan.ERROR_RADIO_INTERFACE_ERROR;
-            case CellNetworkScanResult.STATUS_RADIO_GENERIC_FAILURE:
-            default:
-                return NetworkScan.ERROR_MODEM_ERROR;
-        }
-    }
-
-    private final class NetworkScanCallbackImpl extends TelephonyScanManager.NetworkScanCallback {
-        public void onResults(List<CellInfo> results) {
-            if (DBG) Log.d(TAG, "async scan onResults() results = " + results);
-            NetworkScanHelper.this.onResults(results);
-        }
-
-        public void onComplete() {
-            if (DBG) Log.d(TAG, "async scan onComplete()");
-            NetworkScanHelper.this.onComplete();
-        }
-
-        public void onError(@NetworkScan.ScanErrorCode int errCode) {
-            if (DBG) Log.d(TAG, "async scan onError() errorCode = " + errCode);
-            NetworkScanHelper.this.onError(errCode);
-        }
-    }
-
-    private static final class NetworkScanSyncTask implements Runnable {
-        private final SettableFuture<List<CellInfo>> mCallback;
-        private final TelephonyManager mTelephonyManager;
-
-        NetworkScanSyncTask(
-                TelephonyManager telephonyManager, SettableFuture<List<CellInfo>> callback) {
-            mTelephonyManager = telephonyManager;
-            mCallback = callback;
-        }
-
-        @Override
-        public void run() {
-            if (DBG) Log.d(TAG, "sync scan start");
-            CellNetworkScanResult result = mTelephonyManager.getAvailableNetworks();
-            if (result.getStatus() == CellNetworkScanResult.STATUS_SUCCESS) {
-                List<CellInfo> cellInfos = result.getOperators()
-                        .stream()
-                        .map(operatorInfo
-                                -> CellInfoUtil.convertOperatorInfoToCellInfo(operatorInfo))
-                        .collect(Collectors.toList());
-                if (DBG) Log.d(TAG, "sync scan complete");
-                mCallback.set(cellInfos);
-            } else {
-                mCallback.setException(new Throwable(
-                        Integer.toString(convertToScanErrorCode(result.getStatus()))));
-            }
-        }
-    }
-}
diff --git a/src/com/android/phone/NetworkSelectListPreference.java b/src/com/android/phone/NetworkSelectListPreference.java
deleted file mode 100644
index df3f44a..0000000
--- a/src/com/android/phone/NetworkSelectListPreference.java
+++ /dev/null
@@ -1,505 +0,0 @@
-/*
- * 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.ProgressDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.os.AsyncTask;
-import android.os.Handler;
-import android.os.Message;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.preference.ListPreference;
-import android.preference.Preference;
-import android.telephony.CellInfo;
-import android.telephony.CellInfoCdma;
-import android.telephony.CellInfoGsm;
-import android.telephony.CellInfoLte;
-import android.telephony.CellInfoWcdma;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.text.BidiFormatter;
-import android.text.TextDirectionHeuristics;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.widget.Toast;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.OperatorInfo;
-import com.android.phone.NetworkScanHelper.NetworkScanCallback;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-
-/**
- * "Networks" preference in "Mobile network" settings UI for the Phone app.
- * It's used to manually search and choose mobile network. Enabled only when
- * autoSelect preference is turned off.
- */
-public class NetworkSelectListPreference extends ListPreference
-        implements DialogInterface.OnCancelListener,
-        Preference.OnPreferenceChangeListener{
-
-    private static final String LOG_TAG = "networkSelect";
-    private static final boolean DBG = true;
-
-    private static final int EVENT_MANUALLY_NETWORK_SELECTION_DONE = 1;
-    private static final int EVENT_NETWORK_SCAN_RESULTS = 2;
-    private static final int EVENT_NETWORK_SCAN_COMPLETED = 3;
-    private static final int EVENT_NETWORK_SCAN_ERROR = 4;
-
-    //dialog ids
-    private static final int DIALOG_NETWORK_SELECTION = 100;
-    private static final int DIALOG_NETWORK_LIST_LOAD = 200;
-
-    private final ExecutorService mNetworkScanExecutor = Executors.newFixedThreadPool(1);
-
-    private List<CellInfo> mCellInfoList;
-    private CellInfo mCellInfo;
-
-    private int mSubId;
-    private TelephonyManager mTelephonyManager;
-    private NetworkScanHelper mNetworkScanHelper;
-    private NetworkOperators mNetworkOperators;
-    private List<String> mForbiddenPlmns;
-
-    private ProgressDialog mProgressDialog;
-    public NetworkSelectListPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public NetworkSelectListPreference(Context context, AttributeSet attrs, int defStyleAttr,
-                                       int defStyleRes) {
-        super(context, attrs, defStyleAttr, defStyleRes);
-    }
-
-    @Override
-    protected void onClick() {
-        showProgressDialog(DIALOG_NETWORK_LIST_LOAD);
-        TelephonyManager telephonyManager = (TelephonyManager)
-                getContext().getSystemService(Context.TELEPHONY_SERVICE);
-        new AsyncTask<Void, Void, List<String>>() {
-            @Override
-            protected List<String> doInBackground(Void... voids) {
-                String[] forbiddenPlmns = telephonyManager.getForbiddenPlmns();
-                return forbiddenPlmns != null ? Arrays.asList(forbiddenPlmns) : null;
-            }
-
-            @Override
-            protected void onPostExecute(List<String> result) {
-                mForbiddenPlmns = result;
-                loadNetworksList();
-            }
-        }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
-    }
-
-    private final Handler mHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case EVENT_MANUALLY_NETWORK_SELECTION_DONE:
-                    if (DBG) logd("hideProgressPanel");
-                    dismissProgressDialog();
-
-                    boolean isSuccessed = (boolean) msg.obj;
-                    if (isSuccessed) {
-                        if (DBG) {
-                            logd("manual network selection: succeeded! "
-                                    + getNetworkTitle(mCellInfo));
-                        }
-                        mNetworkOperators.displayNetworkSelectionSucceeded();
-                    } else {
-                        if (DBG) logd("manual network selection: failed!");
-                        mNetworkOperators.displayNetworkSelectionFailed();
-                    }
-                    mNetworkOperators.getNetworkSelectionMode();
-                    break;
-
-                case EVENT_NETWORK_SCAN_RESULTS:
-                    List<CellInfo> results = (List<CellInfo>) msg.obj;
-                    results.removeIf(cellInfo -> cellInfo == null);
-                    mCellInfoList = new ArrayList<>(results);
-                    if (DBG) logd("CALLBACK_SCAN_RESULTS" + mCellInfoList.toString());
-                    break;
-
-                case EVENT_NETWORK_SCAN_COMPLETED:
-                    if (DBG) logd("scan complete, load the cellInfosList");
-                    dismissProgressDialog();
-                    networksListLoaded();
-                    break;
-                case EVENT_NETWORK_SCAN_ERROR:
-                    dismissProgressDialog();
-                    displayNetworkQueryFailed();
-                    mNetworkOperators.getNetworkSelectionMode();
-                    break;
-            }
-            return;
-        }
-    };
-
-    private final NetworkScanHelper.NetworkScanCallback mCallback = new NetworkScanCallback() {
-        public void onResults(List<CellInfo> results) {
-            if (DBG) logd("get scan results: " + results.toString());
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_RESULTS, results);
-            msg.sendToTarget();
-        }
-
-        public void onComplete() {
-            if (DBG) logd("network scan completed.");
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED);
-            msg.sendToTarget();
-        }
-
-        public void onError(int error) {
-            if (DBG) logd("network scan error.");
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_ERROR);
-            msg.sendToTarget();
-        }
-    };
-
-    @Override
-    //implemented for DialogInterface.OnCancelListener
-    public void onCancel(DialogInterface dialog) {
-        if (DBG) logd("user manually close the dialog");
-        mNetworkScanHelper.stopNetworkQuery();
-
-        // If cancelled, we query NetworkSelectMode and update states of AutoSelect button.
-        mNetworkOperators.getNetworkSelectionMode();
-    }
-
-    @Override
-    protected void onDialogClosed(boolean positiveResult) {
-        super.onDialogClosed(positiveResult);
-        // If dismissed, we query NetworkSelectMode and update states of AutoSelect button.
-        if (!positiveResult) {
-            mNetworkOperators.getNetworkSelectionMode();
-        }
-    }
-
-    // This initialize method needs to be called for this preference to work properly.
-    protected void initialize(int subId, NetworkOperators networkOperators,
-            ProgressDialog progressDialog) {
-        mSubId = subId;
-        mNetworkOperators = networkOperators;
-        // This preference should share the same progressDialog with networkOperators category.
-        mProgressDialog = progressDialog;
-
-        mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
-        mNetworkScanHelper = new NetworkScanHelper(
-                mTelephonyManager, mCallback, mNetworkScanExecutor);
-
-        setSummary(mTelephonyManager.getNetworkOperatorName());
-
-        setOnPreferenceChangeListener(this);
-    }
-
-    @Override
-    protected void onPrepareForRemoval() {
-        destroy();
-        super.onPrepareForRemoval();
-    }
-
-    private void destroy() {
-        dismissProgressDialog();
-
-        if (mNetworkScanHelper != null) {
-            mNetworkScanHelper.stopNetworkQuery();
-        }
-
-        mNetworkScanExecutor.shutdown();
-    }
-
-    private void displayEmptyNetworkList() {
-        Toast.makeText(getContext(), R.string.empty_networks_list, Toast.LENGTH_LONG).show();
-    }
-
-    private void displayNetworkQueryFailed() {
-        Toast.makeText(getContext(), R.string.network_query_error, Toast.LENGTH_LONG).show();
-    }
-
-    private void loadNetworksList() {
-        if (DBG) logd("load networks list...");
-        mNetworkScanHelper.startNetworkScan(
-                NetworkScanHelper.NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS);
-    }
-
-    private void networksListLoaded() {
-        if (DBG) logd("networks list loaded");
-
-        mNetworkOperators.getNetworkSelectionMode();
-        if (mCellInfoList != null) {
-            // create a preference for each item in the list.
-            // just use the operator name instead of the mildly
-            // confusing mcc/mnc.
-            List<CharSequence> networkEntriesList = new ArrayList<>();
-            List<CharSequence> networkEntryValuesList = new ArrayList<>();
-            for (CellInfo cellInfo: mCellInfoList) {
-                // Display each operator name only once.
-                String networkTitle = getNetworkTitle(cellInfo);
-                if (CellInfoUtil.isForbidden(cellInfo, mForbiddenPlmns)) {
-                    networkTitle += " "
-                            + getContext().getResources().getString(R.string.forbidden_network);
-                }
-                networkEntriesList.add(networkTitle);
-                networkEntryValuesList.add(getOperatorNumeric(cellInfo));
-            }
-            setEntries(networkEntriesList.toArray(new CharSequence[networkEntriesList.size()]));
-            setEntryValues(networkEntryValuesList.toArray(
-                    new CharSequence[networkEntryValuesList.size()]));
-
-            super.onClick();
-        } else {
-            displayEmptyNetworkList();
-        }
-    }
-
-    private void dismissProgressDialog() {
-        if (mProgressDialog != null && mProgressDialog.isShowing()) {
-            try {
-                mProgressDialog.dismiss();
-            } catch (IllegalArgumentException ex) {
-                loge("Can't close the progress dialog " + ex);
-            }
-        }
-    }
-
-    private void showProgressDialog(int id) {
-        if (mProgressDialog == null) {
-            mProgressDialog = new ProgressDialog(getContext());
-        } else {
-            // Dismiss progress bar if it's showing now.
-            dismissProgressDialog();
-        }
-
-        switch (id) {
-            case DIALOG_NETWORK_SELECTION:
-                final String networkSelectMsg = getContext().getResources()
-                        .getString(R.string.register_on_network,
-                                getNetworkTitle(mCellInfo));
-                mProgressDialog.setMessage(networkSelectMsg);
-                mProgressDialog.setCanceledOnTouchOutside(false);
-                mProgressDialog.setCancelable(false);
-                mProgressDialog.setIndeterminate(true);
-                break;
-            case DIALOG_NETWORK_LIST_LOAD:
-                mProgressDialog.setMessage(
-                        getContext().getResources().getString(R.string.load_networks_progress));
-                mProgressDialog.setCanceledOnTouchOutside(false);
-                mProgressDialog.setCancelable(true);
-                mProgressDialog.setIndeterminate(false);
-                mProgressDialog.setOnCancelListener(this);
-                break;
-            default:
-        }
-        mProgressDialog.show();
-    }
-
-    /**
-     * Implemented to support onPreferenceChangeListener to look for preference
-     * changes specifically on this button.
-     *
-     * @param preference is the preference to be changed, should be network select button.
-     * @param newValue should be the value of the selection as index of operators.
-     */
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        int operatorIndex = findIndexOfValue((String) newValue);
-        mCellInfo = mCellInfoList.get(operatorIndex);
-        if (DBG) logd("selected network: " + mCellInfo.toString());
-
-        MetricsLogger.action(getContext(),
-                MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK);
-
-        if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
-            ThreadUtils.postOnBackgroundThread(() -> {
-                final OperatorInfo operatorInfo = getOperatorInfoFromCellInfo(mCellInfo);
-                if (DBG) logd("manually selected network: " + operatorInfo.toString());
-                boolean isSuccessed = mTelephonyManager.setNetworkSelectionModeManual(
-                        operatorInfo, true /* persistSelection */);
-                Message msg = mHandler.obtainMessage(EVENT_MANUALLY_NETWORK_SELECTION_DONE);
-                msg.obj = isSuccessed;
-                msg.sendToTarget();
-            });
-        } else {
-            loge("Error selecting network, subscription Id is invalid " + mSubId);
-        }
-
-        return true;
-    }
-
-    /**
-     * Returns the title of the network obtained in the manual search.
-     *
-     * @param cellInfo 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(CellInfo cellInfo) {
-        OperatorInfo ni = getOperatorInfoFromCellInfo(cellInfo);
-
-        if (!TextUtils.isEmpty(ni.getOperatorAlphaLong())) {
-            return ni.getOperatorAlphaLong();
-        } else if (!TextUtils.isEmpty(ni.getOperatorAlphaShort())) {
-            return ni.getOperatorAlphaShort();
-        } else {
-            BidiFormatter bidiFormatter = BidiFormatter.getInstance();
-            return bidiFormatter.unicodeWrap(ni.getOperatorNumeric(), TextDirectionHeuristics.LTR);
-        }
-    }
-
-    /**
-     * Returns the operator numeric (MCCMNC) obtained in the manual search.
-     *
-     * @param cellInfo contains the information of the network.
-     * @return MCCMNC string.
-     */
-    private String getOperatorNumeric(CellInfo cellInfo) {
-        return getOperatorInfoFromCellInfo(cellInfo).getOperatorNumeric();
-    }
-
-    /**
-     * Wrap a cell info into an operator info.
-     */
-    private OperatorInfo getOperatorInfoFromCellInfo(CellInfo cellInfo) {
-        OperatorInfo oi;
-        if (cellInfo instanceof CellInfoLte) {
-            CellInfoLte lte = (CellInfoLte) cellInfo;
-            oi = new OperatorInfo(
-                    (String) lte.getCellIdentity().getOperatorAlphaLong(),
-                    (String) lte.getCellIdentity().getOperatorAlphaShort(),
-                    lte.getCellIdentity().getMobileNetworkOperator());
-        } else if (cellInfo instanceof CellInfoWcdma) {
-            CellInfoWcdma wcdma = (CellInfoWcdma) cellInfo;
-            oi = new OperatorInfo(
-                    (String) wcdma.getCellIdentity().getOperatorAlphaLong(),
-                    (String) wcdma.getCellIdentity().getOperatorAlphaShort(),
-                    wcdma.getCellIdentity().getMobileNetworkOperator());
-        } else if (cellInfo instanceof CellInfoGsm) {
-            CellInfoGsm gsm = (CellInfoGsm) cellInfo;
-            oi = new OperatorInfo(
-                    (String) gsm.getCellIdentity().getOperatorAlphaLong(),
-                    (String) gsm.getCellIdentity().getOperatorAlphaShort(),
-                    gsm.getCellIdentity().getMobileNetworkOperator());
-        } else if (cellInfo instanceof CellInfoCdma) {
-            CellInfoCdma cdma = (CellInfoCdma) cellInfo;
-            oi = new OperatorInfo(
-                    (String) cdma.getCellIdentity().getOperatorAlphaLong(),
-                    (String) cdma.getCellIdentity().getOperatorAlphaShort(),
-                    "" /* operator numeric */);
-        } else {
-            oi = new OperatorInfo("", "", "");
-        }
-        return oi;
-    }
-
-    @Override
-    protected Parcelable onSaveInstanceState() {
-        final Parcelable superState = super.onSaveInstanceState();
-        if (isPersistent()) {
-            // No need to save instance state since it's persistent
-            return superState;
-        }
-
-        final SavedState myState = new SavedState(superState);
-        myState.mDialogListEntries = getEntries();
-        myState.mDialogListEntryValues = getEntryValues();
-        myState.mCellInfoList = mCellInfoList;
-        return myState;
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Parcelable state) {
-        if (state == null || !state.getClass().equals(SavedState.class)) {
-            // Didn't save state for us in onSaveInstanceState
-            super.onRestoreInstanceState(state);
-            return;
-        }
-
-        SavedState myState = (SavedState) state;
-
-        if (getEntries() == null && myState.mDialogListEntries != null) {
-            setEntries(myState.mDialogListEntries);
-        }
-        if (getEntryValues() == null && myState.mDialogListEntryValues != null) {
-            setEntryValues(myState.mDialogListEntryValues);
-        }
-        if (mCellInfoList == null && myState.mCellInfoList != null) {
-            mCellInfoList = myState.mCellInfoList;
-        }
-
-        super.onRestoreInstanceState(myState.getSuperState());
-    }
-
-    /**
-     *  We save entries, entryValues and operatorInfoList into bundle.
-     *  At onCreate of fragment, dialog will be restored if it was open. In this case,
-     *  we need to restore entries, entryValues and operatorInfoList. Without those information,
-     *  onPreferenceChange will fail if user select network from the dialog.
-     */
-    private static class SavedState extends BaseSavedState {
-        CharSequence[] mDialogListEntries;
-        CharSequence[] mDialogListEntryValues;
-        List<CellInfo> mCellInfoList;
-
-        SavedState(Parcel source) {
-            super(source);
-            final ClassLoader boot = Object.class.getClassLoader();
-            mDialogListEntries = source.readCharSequenceArray();
-            mDialogListEntryValues = source.readCharSequenceArray();
-            mCellInfoList = source.readParcelableList(mCellInfoList, boot);
-        }
-
-        @Override
-        public void writeToParcel(Parcel dest, int flags) {
-            super.writeToParcel(dest, flags);
-            dest.writeCharSequenceArray(mDialogListEntries);
-            dest.writeCharSequenceArray(mDialogListEntryValues);
-            dest.writeParcelableList(mCellInfoList, flags);
-        }
-
-        SavedState(Parcelable superState) {
-            super(superState);
-        }
-
-        public static final Parcelable.Creator<SavedState> CREATOR =
-                new Parcelable.Creator<SavedState>() {
-                    public SavedState createFromParcel(Parcel in) {
-                        return new SavedState(in);
-                    }
-
-                    public SavedState[] newArray(int size) {
-                        return new SavedState[size];
-                    }
-                };
-    }
-
-    private void logd(String msg) {
-        Log.d(LOG_TAG, "[NetworksList] " + msg);
-    }
-
-    private void loge(String msg) {
-        Log.e(LOG_TAG, "[NetworksList] " + msg);
-    }
-}
diff --git a/src/com/android/phone/NetworkSelectSetting.java b/src/com/android/phone/NetworkSelectSetting.java
deleted file mode 100644
index 45478d9..0000000
--- a/src/com/android/phone/NetworkSelectSetting.java
+++ /dev/null
@@ -1,569 +0,0 @@
-/*
- * Copyright (C) 2018 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.content.Context;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.os.PersistableBundle;
-import android.preference.Preference;
-import android.preference.PreferenceCategory;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
-import android.telephony.AccessNetworkConstants;
-import android.telephony.CarrierConfigManager;
-import android.telephony.CellIdentity;
-import android.telephony.CellInfo;
-import android.telephony.NetworkRegistrationInfo;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.OperatorInfo;
-import com.android.phone.NetworkScanHelper.NetworkScanCallback;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-/**
- * "Choose network" settings UI for the Phone app.
- */
-public class NetworkSelectSetting extends PreferenceFragment {
-
-    private static final String TAG = "NetworkSelectSetting";
-    private static final boolean DBG = true;
-
-    private static final int EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE = 1;
-    private static final int EVENT_NETWORK_SCAN_RESULTS = 2;
-    private static final int EVENT_NETWORK_SCAN_ERROR = 3;
-    private static final int EVENT_NETWORK_SCAN_COMPLETED = 4;
-
-    private static final String PREF_KEY_CONNECTED_NETWORK_OPERATOR =
-            "connected_network_operator_preference";
-    private static final String PREF_KEY_NETWORK_OPERATORS = "network_operators_preference";
-
-    // used to add/remove NetworkOperatorsPreference.
-    private PreferenceCategory mNetworkOperatorsPreferences;
-    // used to add/remove connected NetworkOperatorPreference.
-    private PreferenceCategory mConnectedNetworkOperatorsPreference;
-    // manage the progress bar on the top of the page.
-    private View mProgressHeader;
-    private Preference mStatusMessagePreference;
-    private List<CellInfo> mCellInfoList;
-    private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-    private ViewGroup mFrameLayout;
-    private NetworkOperatorPreference mSelectedNetworkOperatorPreference;
-    private TelephonyManager mTelephonyManager;
-    private List<String> mForbiddenPlmns;
-    private boolean mShow4GForLTE = false;
-    private NetworkScanHelper mNetworkScanHelper;
-    private final ExecutorService mNetworkScanExecutor = Executors.newFixedThreadPool(1);
-
-    private final Runnable mUpdateNetworkOperatorsRunnable = () -> {
-        updateNetworkOperatorsPreferenceCategory();
-    };
-
-    /**
-     * Create a new instance of this fragment.
-     */
-    public static NetworkSelectSetting newInstance(int subId) {
-        Bundle args = new Bundle();
-        args.putInt(NetworkSelectSettingActivity.KEY_SUBSCRIPTION_ID, subId);
-        NetworkSelectSetting fragment = new NetworkSelectSetting();
-        fragment.setArguments(args);
-
-        return fragment;
-    }
-
-    @Override
-    public void onCreate(Bundle icicle) {
-        if (DBG) logd("onCreate");
-        super.onCreate(icicle);
-
-        mSubId = getArguments().getInt(NetworkSelectSettingActivity.KEY_SUBSCRIPTION_ID);
-
-        addPreferencesFromResource(R.xml.choose_network);
-        mConnectedNetworkOperatorsPreference =
-                (PreferenceCategory) findPreference(PREF_KEY_CONNECTED_NETWORK_OPERATOR);
-        mNetworkOperatorsPreferences =
-                (PreferenceCategory) findPreference(PREF_KEY_NETWORK_OPERATORS);
-        mStatusMessagePreference = new Preference(getContext());
-        mSelectedNetworkOperatorPreference = null;
-        mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
-        mNetworkScanHelper = new NetworkScanHelper(
-                mTelephonyManager, mCallback, mNetworkScanExecutor);
-        PersistableBundle bundle = ((CarrierConfigManager) getContext().getSystemService(
-                Context.CARRIER_CONFIG_SERVICE)).getConfigForSubId(mSubId);
-        if (bundle != null) {
-            mShow4GForLTE = bundle.getBoolean(
-                    CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
-        }
-        setRetainInstance(true);
-    }
-
-    @Override
-    public void onViewCreated(View view, Bundle savedInstanceState) {
-        if (DBG) logd("onViewCreated");
-        super.onViewCreated(view, savedInstanceState);
-
-        if (getListView() != null) {
-            getListView().setDivider(null);
-        }
-        // Inflate progress bar
-        final Activity activity = getActivity();
-        if (activity != null) {
-            ActionBar actionBar = activity.getActionBar();
-            if (actionBar != null) {
-                // android.R.id.home will be triggered in
-                // {@link NetworkSelectSettingAcitivity#onOptionsItemSelected()}
-                actionBar.setDisplayHomeAsUpEnabled(true);
-            }
-            mFrameLayout = activity.findViewById(R.id.choose_network_content);
-            final LayoutInflater inflater = activity.getLayoutInflater();
-            final View pinnedHeader =
-                    inflater.inflate(R.layout.choose_network_progress_header, mFrameLayout, false);
-            mFrameLayout.addView(pinnedHeader);
-            mFrameLayout.setVisibility(View.VISIBLE);
-            mProgressHeader = pinnedHeader.findViewById(R.id.progress_bar_animation);
-            setProgressBarVisible(false);
-        }
-        forceConfigConnectedNetworkOperatorsPreferenceCategory();
-    }
-
-    @Override
-    public void onStart() {
-        if (DBG) logd("onStart");
-        super.onStart();
-        new AsyncTask<Void, Void, List<String>>() {
-            @Override
-            protected List<String> doInBackground(Void... voids) {
-                String[] forbiddenPlmns = mTelephonyManager.getForbiddenPlmns();
-                return forbiddenPlmns != null ? Arrays.asList(forbiddenPlmns) : null;
-            }
-
-            @Override
-            protected void onPostExecute(List<String> result) {
-                mForbiddenPlmns = result;
-                loadNetworksList();
-            }
-        }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
-    }
-
-    /**
-     * Invoked on each preference click in this hierarchy, overrides
-     * PreferenceActivity's implementation.  Used to make sure we track the
-     * preference click events.
-     * Since the connected network operator is either faked (when no data connection) or already
-     * connected, we do not allow user to click the connected network operator.
-     */
-    @Override
-    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
-                                         Preference preference) {
-        if (DBG) logd("User clicked the screen");
-        stopNetworkQuery();
-        setProgressBarVisible(false);
-        if (preference instanceof  NetworkOperatorPreference) {
-            // Refresh the last selected item in case users reselect network.
-            if (mSelectedNetworkOperatorPreference != null) {
-                mSelectedNetworkOperatorPreference.setSummary("");
-            }
-
-            mSelectedNetworkOperatorPreference = (NetworkOperatorPreference) preference;
-            CellInfo cellInfo = mSelectedNetworkOperatorPreference.getCellInfo();
-            if (DBG) logd("User click a NetworkOperatorPreference: " + cellInfo.toString());
-
-            // Send metrics event
-            MetricsLogger.action(getContext(),
-                    MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK);
-
-            // Connect to the network
-            if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
-                if (DBG) {
-                    logd("Connect to the network: " + CellInfoUtil.getNetworkTitle(cellInfo));
-                }
-                // Set summary as "Connecting" to the selected network.
-                mSelectedNetworkOperatorPreference.setSummary(R.string.network_connecting);
-
-                // Set summary as "Disconnected" to the previously connected network
-                if (mConnectedNetworkOperatorsPreference.getPreferenceCount() > 0) {
-                    NetworkOperatorPreference connectedNetworkOperator = (NetworkOperatorPreference)
-                            (mConnectedNetworkOperatorsPreference.getPreference(0));
-                    if (!CellInfoUtil.getNetworkTitle(cellInfo).equals(
-                            CellInfoUtil.getNetworkTitle(connectedNetworkOperator.getCellInfo()))) {
-                        connectedNetworkOperator.setSummary(R.string.network_disconnected);
-                    }
-                }
-
-                OperatorInfo operatorInfo = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo);
-                if (DBG) logd("manually selected network operator: " + operatorInfo.toString());
-
-                ThreadUtils.postOnBackgroundThread(() -> {
-                    Message msg = mHandler.obtainMessage(EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE);
-                    msg.obj = mTelephonyManager.setNetworkSelectionModeManual(
-                            operatorInfo, true /* persistSelection */);
-                    msg.sendToTarget();
-                });
-
-                setProgressBarVisible(true);
-                return true;
-            } else {
-                loge("Error selecting network. Subscription Id is invalid.");
-                mSelectedNetworkOperatorPreference = null;
-                return false;
-            }
-
-        } else {
-            preferenceScreen.setEnabled(false);
-            return false;
-        }
-    }
-
-    @Override
-    public void onAttach(Activity activity) {
-        super.onAttach(activity);
-        if (!(getActivity() instanceof NetworkSelectSettingActivity)) {
-            throw new IllegalStateException("Parent activity is not NetworkSelectSettingActivity");
-        }
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
-        if (DBG) logd("onStop");
-        getView().removeCallbacks(mUpdateNetworkOperatorsRunnable);
-        stopNetworkQuery();
-    }
-
-    private final Handler mHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE:
-                    if (DBG) logd("network selection done: hide the progress header");
-                    setProgressBarVisible(false);
-
-                    boolean isSuccessed = (boolean) msg.obj;
-                    if (isSuccessed) {
-                        if (DBG) logd("manual network selection: succeeded! ");
-                        // Set summary as "Connected" to the selected network.
-                        mSelectedNetworkOperatorPreference.setSummary(R.string.network_connected);
-                    } else {
-                        if (DBG) logd("manual network selection: failed! ");
-                        // Set summary as "Couldn't connect" to the selected network.
-                        mSelectedNetworkOperatorPreference.setSummary(
-                                R.string.network_could_not_connect);
-                    }
-                    break;
-
-                case EVENT_NETWORK_SCAN_RESULTS:
-                    List<CellInfo> results = aggregateCellInfoList((List<CellInfo>) msg.obj);
-                    mCellInfoList = new ArrayList<>(results);
-                    if (DBG) logd("after aggregate: " + mCellInfoList.toString());
-                    if (mCellInfoList != null && mCellInfoList.size() != 0) {
-                        updateNetworkOperators();
-                    } else {
-                        addMessagePreference(R.string.empty_networks_list);
-                    }
-
-                    break;
-
-                case EVENT_NETWORK_SCAN_ERROR:
-                    int error = msg.arg1;
-                    if (DBG) logd("error while querying available networks " + error);
-                    stopNetworkQuery();
-                    addMessagePreference(R.string.network_query_error);
-                    break;
-
-                case EVENT_NETWORK_SCAN_COMPLETED:
-                    stopNetworkQuery();
-                    if (DBG) logd("scan complete");
-                    if (mCellInfoList == null) {
-                        // In case the scan timeout before getting any results
-                        addMessagePreference(R.string.empty_networks_list);
-                    }
-                    break;
-            }
-            return;
-        }
-    };
-
-    private void loadNetworksList() {
-        if (DBG) logd("load networks list...");
-        setProgressBarVisible(true);
-        mNetworkScanHelper.startNetworkScan(
-                NetworkScanHelper.NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS);
-    }
-
-    private final NetworkScanHelper.NetworkScanCallback mCallback = new NetworkScanCallback() {
-        public void onResults(List<CellInfo> results) {
-            if (DBG) logd("get scan results.");
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_RESULTS, results);
-            msg.sendToTarget();
-        }
-
-        public void onComplete() {
-            if (DBG) logd("network scan completed.");
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED);
-            msg.sendToTarget();
-        }
-
-        public void onError(int error) {
-            if (DBG) logd("get onError callback with error code: " + error);
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_ERROR, error, 0 /* arg2 */);
-            msg.sendToTarget();
-        }
-    };
-
-    private void updateNetworkOperators() {
-        if (DBG) logd("updateNetworkOperators");
-        if (getActivity() != null) {
-            final View view = getView();
-            final Handler handler = view.getHandler();
-            if (handler != null && handler.hasCallbacks(mUpdateNetworkOperatorsRunnable)) {
-                return;
-            }
-            view.post(mUpdateNetworkOperatorsRunnable);
-        }
-    }
-
-    /**
-     * Update the currently available network operators list, which only contains the unregistered
-     * network operators. So if the device has no data and the network operator in the connected
-     * network operator category shows "Disconnected", it will also exist in the available network
-     * operator category for user to select. On the other hand, if the device has data and the
-     * network operator in the connected network operator category shows "Connected", it will not
-     * exist in the available network category.
-     */
-    private void updateNetworkOperatorsPreferenceCategory() {
-        mNetworkOperatorsPreferences.removeAll();
-
-        configConnectedNetworkOperatorsPreferenceCategory();
-        for (int index = 0; index < mCellInfoList.size(); index++) {
-            if (!mCellInfoList.get(index).isRegistered()) {
-                NetworkOperatorPreference pref = new NetworkOperatorPreference(
-                        mCellInfoList.get(index), getContext(), mForbiddenPlmns, mShow4GForLTE);
-                pref.setKey(CellInfoUtil.getNetworkTitle(mCellInfoList.get(index)));
-                pref.setOrder(index);
-                mNetworkOperatorsPreferences.addPreference(pref);
-            }
-        }
-    }
-
-    /**
-     * Config the connected network operator preference when the page was created. When user get
-     * into this page, the device might or might not have data connection.
-     *   - If the device has data:
-     *     1. use {@code ServiceState#getNetworkRegistrationInfoList()} to get the currently
-     *        registered cellIdentity, wrap it into a CellInfo;
-     *     2. set the signal strength level as strong;
-     *     3. use {@link TelephonyManager#getNetworkOperatorName()} to get the title of the
-     *        previously connected network operator, since the CellIdentity got from step 1 only has
-     *        PLMN.
-     *   - If the device has no data, we will remove the connected network operators list from the
-     *     screen.
-     */
-    private void forceConfigConnectedNetworkOperatorsPreferenceCategory() {
-        if (DBG) logd("Force config ConnectedNetworkOperatorsPreferenceCategory");
-        if (mTelephonyManager.getDataState() == mTelephonyManager.DATA_CONNECTED) {
-            // Try to get the network registration states
-            ServiceState ss = mTelephonyManager.getServiceState();
-            List<NetworkRegistrationInfo> networkList =
-                    ss.getNetworkRegistrationInfoListForTransportType(
-                            AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
-            if (networkList == null || networkList.size() == 0) {
-                loge("getNetworkRegistrationInfoList return null");
-                // Remove the connected network operators category
-                removeConnectedNetworkOperatorPreference();
-                return;
-            }
-            CellIdentity cellIdentity = networkList.get(0).getCellIdentity();
-            CellInfo cellInfo = CellInfoUtil.wrapCellInfoWithCellIdentity(cellIdentity);
-            if (cellInfo != null) {
-                if (DBG) logd("Currently registered cell: " + cellInfo.toString());
-                NetworkOperatorPreference pref = new NetworkOperatorPreference(
-                        cellInfo, getContext(), mForbiddenPlmns, mShow4GForLTE);
-                pref.setTitle(mTelephonyManager.getNetworkOperatorName());
-                pref.setSummary(R.string.network_connected);
-                // Update the signal strength icon, since the default signalStrength value would be
-                // zero (it would be quite confusing why the connected network has no signal)
-                pref.setIcon(NetworkOperatorPreference.NUMBER_OF_LEVELS - 1);
-
-                mConnectedNetworkOperatorsPreference.addPreference(pref);
-            } else {
-                // Remove the connected network operators category
-                removeConnectedNetworkOperatorPreference();
-            }
-        } else {
-            if (DBG) logd("No currently registered cell");
-            // Remove the connected network operators category
-            removeConnectedNetworkOperatorPreference();
-        }
-    }
-
-    /**
-     * Configure the ConnectedNetworkOperatorsPreferenceCategory. The category only need to be
-     * configured if the category is currently empty or the operator network title of the previous
-     * connected network is different from the new one.
-     */
-    private void configConnectedNetworkOperatorsPreferenceCategory() {
-        if (DBG) logd("config ConnectedNetworkOperatorsPreferenceCategory");
-        // Remove the category if the CellInfo list is empty or does not have registered cell.
-        if (mCellInfoList.size() == 0) {
-            if (DBG) logd("empty cellinfo list");
-            removeConnectedNetworkOperatorPreference();
-        }
-        CellInfo connectedNetworkOperator = null;
-        for (CellInfo cellInfo: mCellInfoList) {
-            if (cellInfo.isRegistered()) {
-                connectedNetworkOperator = cellInfo;
-                break;
-            }
-        }
-        if (connectedNetworkOperator == null) {
-            if (DBG) logd("no registered network");
-            removeConnectedNetworkOperatorPreference();
-            return;
-        }
-
-        // config the category if it is empty.
-        if (mConnectedNetworkOperatorsPreference.getPreferenceCount() == 0) {
-            if (DBG) logd("ConnectedNetworkSelectList is empty, add one");
-            addConnectedNetworkOperatorPreference(connectedNetworkOperator);
-            return;
-        }
-        NetworkOperatorPreference previousConnectedNetworkOperator = (NetworkOperatorPreference)
-                (mConnectedNetworkOperatorsPreference.getPreference(0));
-
-        // config the category if the network title of the previous connected network is different
-        // from the new one.
-        String cTitle = CellInfoUtil.getNetworkTitle(connectedNetworkOperator);
-        String pTitle = CellInfoUtil.getNetworkTitle(
-                previousConnectedNetworkOperator.getCellInfo());
-        if (!cTitle.equals(pTitle)) {
-            if (DBG) logd("reconfig the category: connected network changed");
-            addConnectedNetworkOperatorPreference(connectedNetworkOperator);
-            return;
-        }
-        if (DBG) logd("same network operator is connected, only refresh the connected network");
-        // Otherwise same network operator is connected, only refresh the connected network
-        // operator preference (first and the only one in this category).
-        ((NetworkOperatorPreference) mConnectedNetworkOperatorsPreference.getPreference(0))
-                .refresh();
-        return;
-    }
-
-    /**
-     * Creates a Preference for the given {@link CellInfo} and adds it to the
-     * {@link #mConnectedNetworkOperatorsPreference}.
-     */
-    private void addConnectedNetworkOperatorPreference(CellInfo cellInfo) {
-        if (DBG) logd("addConnectedNetworkOperatorPreference");
-        // Remove the current ConnectedNetworkOperatorsPreference
-        removeConnectedNetworkOperatorPreference();
-        final NetworkOperatorPreference pref = new NetworkOperatorPreference(
-                cellInfo, getContext(), mForbiddenPlmns, mShow4GForLTE);
-        pref.setSummary(R.string.network_connected);
-        mConnectedNetworkOperatorsPreference.addPreference(pref);
-        PreferenceScreen preferenceScreen = getPreferenceScreen();
-        preferenceScreen.addPreference(mConnectedNetworkOperatorsPreference);
-    }
-
-    /** Removes all preferences and hide the {@link #mConnectedNetworkOperatorsPreference}. */
-    private void removeConnectedNetworkOperatorPreference() {
-        mConnectedNetworkOperatorsPreference.removeAll();
-        PreferenceScreen preferenceScreen = getPreferenceScreen();
-        preferenceScreen.removePreference(mConnectedNetworkOperatorsPreference);
-    }
-
-    protected void setProgressBarVisible(boolean visible) {
-        if (mProgressHeader != null) {
-            mProgressHeader.setVisibility(visible ? View.VISIBLE : View.GONE);
-        }
-    }
-
-    private void addMessagePreference(int messageId) {
-        if (DBG) logd("remove callback");
-        getView().removeCallbacks(mUpdateNetworkOperatorsRunnable);
-        setProgressBarVisible(false);
-        if (DBG) logd("addMessagePreference");
-        mStatusMessagePreference.setTitle(messageId);
-        removeConnectedNetworkOperatorPreference();
-        mNetworkOperatorsPreferences.removeAll();
-        mNetworkOperatorsPreferences.addPreference(mStatusMessagePreference);
-    }
-
-    /**
-     * The Scan results may contains several cell infos with different radio technologies and signal
-     * strength for one network operator. Aggregate the CellInfoList by retaining only the cell info
-     * with the strongest signal strength.
-     */
-    private List<CellInfo> aggregateCellInfoList(List<CellInfo> cellInfoList) {
-        if (DBG) logd("before aggregate: " + cellInfoList.toString());
-        Map<String, CellInfo> map = new HashMap<>();
-        for (CellInfo cellInfo: cellInfoList) {
-            String plmn = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo).getOperatorNumeric();
-            if (cellInfo.isRegistered() || !map.containsKey(plmn)) {
-                map.put(plmn, cellInfo);
-            } else {
-                if (map.get(plmn).isRegistered()
-                        || map.get(plmn).getCellSignalStrength().getLevel()
-                        > cellInfo.getCellSignalStrength().getLevel()) {
-                    // Skip if the stored cellInfo is registered or has higher signal strength level
-                    continue;
-                }
-                // Otherwise replace it with the new CellInfo
-                map.put(plmn, cellInfo);
-            }
-        }
-        return new ArrayList<>(map.values());
-    }
-
-    private void stopNetworkQuery() {
-        if (mNetworkScanHelper != null) {
-            mNetworkScanHelper.stopNetworkQuery();
-        }
-    }
-
-    @Override
-    public void onDestroy() {
-        mNetworkScanExecutor.shutdown();
-        super.onDestroy();
-    }
-
-    private void logd(String msg) {
-        Log.d(TAG, msg);
-    }
-
-    private void loge(String msg) {
-        Log.e(TAG, msg);
-    }
-}
diff --git a/src/com/android/phone/NetworkSelectSettingActivity.java b/src/com/android/phone/NetworkSelectSettingActivity.java
deleted file mode 100644
index 5b29b281..0000000
--- a/src/com/android/phone/NetworkSelectSettingActivity.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2018 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.Fragment;
-import android.app.FragmentManager;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.MenuItem;
-
-
-/**
- * Activity associated with NetworkSelectSetting fragment
- */
-public class NetworkSelectSettingActivity extends Activity {
-    private static final String TAG = "NetworkSelectSettingActivity";
-    public static final String KEY_SUBSCRIPTION_ID = "subscription_id";
-
-    /**
-     * Returns the Android Intent that led to this Activity being created.
-     */
-    public static Intent getIntent(Context context, int subId) {
-        Intent intent = new Intent(context, NetworkSelectSettingActivity.class);
-        intent.putExtra(KEY_SUBSCRIPTION_ID, subId);
-        return intent;
-    }
-
-    @Override
-    public void onCreate(Bundle savedState) {
-        Log.d(TAG, "onCreate()");
-        super.onCreate(savedState);
-        int subId = getIntent().getExtras().getInt(KEY_SUBSCRIPTION_ID);
-        setContentView(R.layout.choose_network);
-
-        FragmentManager fragmentManager = getFragmentManager();
-        Fragment fragment = fragmentManager.findFragmentById(R.id.choose_network_content);
-        if (fragment == null) {
-            fragmentManager.beginTransaction()
-                    .add(R.id.choose_network_content,
-                            NetworkSelectSetting.newInstance(subId), TAG)
-                    .commit();
-        }
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        final int itemId = item.getItemId();
-        if (itemId == android.R.id.home) {
-            onBackPressed();
-            return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-}
diff --git a/src/com/android/phone/NotificationMgr.java b/src/com/android/phone/NotificationMgr.java
index 27749e4..6f7022f 100644
--- a/src/com/android/phone/NotificationMgr.java
+++ b/src/com/android/phone/NotificationMgr.java
@@ -27,8 +27,8 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
-import android.content.pm.UserInfo;
 import android.content.res.Resources;
 import android.net.Uri;
 import android.os.Handler;
@@ -41,7 +41,6 @@
 import android.preference.PreferenceManager;
 import android.provider.ContactsContract.PhoneLookup;
 import android.provider.Settings;
-import android.telecom.DefaultDialerManager;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
@@ -63,6 +62,7 @@
 import com.android.internal.telephony.util.NotificationChannelController;
 import com.android.phone.settings.VoicemailSettingsActivity;
 
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -112,7 +112,6 @@
     private PhoneGlobals mApp;
 
     private Context mContext;
-    private NotificationManager mNotificationManager;
     private StatusBarManager mStatusBarManager;
     private UserManager mUserManager;
     private Toast mToast;
@@ -160,13 +159,11 @@
     private NotificationMgr(PhoneGlobals app) {
         mApp = app;
         mContext = app;
-        mNotificationManager =
-                (NotificationManager) app.getSystemService(Context.NOTIFICATION_SERVICE);
         mStatusBarManager =
                 (StatusBarManager) app.getSystemService(Context.STATUS_BAR_SERVICE);
         mUserManager = (UserManager) app.getSystemService(Context.USER_SERVICE);
         mSubscriptionManager = SubscriptionManager.from(mContext);
-        mTelecomManager = TelecomManager.from(mContext);
+        mTelecomManager = app.getSystemService(TelecomManager.class);
         mTelephonyManager = (TelephonyManager) app.getSystemService(Context.TELEPHONY_SERVICE);
     }
 
@@ -373,20 +370,18 @@
                     .setColor(res.getColor(R.color.dialer_theme_color))
                     .setOngoing(carrierConfig.getBoolean(
                             CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL))
-                    .setChannel(NotificationChannelController.CHANNEL_ID_VOICE_MAIL)
+                    .setChannelId(NotificationChannelController.CHANNEL_ID_VOICE_MAIL)
                     .setOnlyAlertOnce(isRefresh);
 
             final Notification notification = builder.build();
-            List<UserInfo> users = mUserManager.getUsers(true);
-            for (int i = 0; i < users.size(); i++) {
-                final UserInfo user = users.get(i);
-                final UserHandle userHandle = user.getUserHandle();
-                if (!mUserManager.hasUserRestriction(
+            List<UserHandle> users = getUsersExcludeDying();
+            for (UserHandle userHandle : users) {
+                if (!hasUserRestriction(
                         UserManager.DISALLOW_OUTGOING_CALLS, userHandle)
-                        && !user.isManagedProfile()) {
+                        && !mUserManager.isManagedProfile(userHandle.getIdentifier())) {
                     if (!maybeSendVoicemailNotificationUsingDefaultDialer(phone, vmCount, vmNumber,
                             pendingIntent, isSettingsIntent, userHandle, isRefresh)) {
-                        mNotificationManager.notifyAsUser(
+                        notifyAsUser(
                                 Integer.toString(subId) /* tag */,
                                 VOICEMAIL_NOTIFICATION,
                                 notification,
@@ -395,16 +390,14 @@
                 }
             }
         } else {
-            List<UserInfo> users = mUserManager.getUsers(true /* excludeDying */);
-            for (int i = 0; i < users.size(); i++) {
-                final UserInfo user = users.get(i);
-                final UserHandle userHandle = user.getUserHandle();
-                if (!mUserManager.hasUserRestriction(
+            List<UserHandle> users = getUsersExcludeDying();
+            for (UserHandle userHandle : users) {
+                if (!hasUserRestriction(
                         UserManager.DISALLOW_OUTGOING_CALLS, userHandle)
-                        && !user.isManagedProfile()) {
+                        && !mUserManager.isManagedProfile(userHandle.getIdentifier())) {
                     if (!maybeSendVoicemailNotificationUsingDefaultDialer(phone, 0, null, null,
                             false, userHandle, isRefresh)) {
-                        mNotificationManager.cancelAsUser(
+                        cancelAsUser(
                                 Integer.toString(subId) /* tag */,
                                 VOICEMAIL_NOTIFICATION,
                                 userHandle);
@@ -414,6 +407,22 @@
         }
     }
 
+    private List<UserHandle> getUsersExcludeDying() {
+        long[] serialNumbersOfUsers =
+                mUserManager.getSerialNumbersOfUsers(/* excludeDying= */ true);
+        List<UserHandle> users = new ArrayList<>(serialNumbersOfUsers.length);
+        for (long serialNumber : serialNumbersOfUsers) {
+            users.add(mUserManager.getUserForSerialNumber(serialNumber));
+        }
+        return users;
+    }
+
+    private boolean hasUserRestriction(String restrictionKey, UserHandle userHandle) {
+        final List<UserManager.EnforcingUser> sources = mUserManager
+                .getUserRestrictionSources(restrictionKey, userHandle);
+        return (sources != null && !sources.isEmpty());
+    }
+
     /**
      * Sends a broadcast with the voicemail notification information to the default dialer. This
      * method is also used to indicate to the default dialer when to clear the
@@ -468,8 +477,8 @@
     }
 
     private Intent getShowVoicemailIntentForDefaultDialer(UserHandle userHandle) {
-        String dialerPackage = DefaultDialerManager
-                .getDefaultDialerApplication(mContext, userHandle.getIdentifier());
+        String dialerPackage = mContext.getSystemService(TelecomManager.class)
+                .getDefaultDialerPackage(userHandle);
         return new Intent(TelephonyManager.ACTION_SHOW_VOICEMAIL_NOTIFICATION)
                 .setPackage(dialerPackage);
     }
@@ -538,7 +547,7 @@
                     .setContentText(mContext.getString(R.string.sum_cfu_enabled_indicator))
                     .setShowWhen(false)
                     .setOngoing(true)
-                    .setChannel(NotificationChannelController.CHANNEL_ID_CALL_FORWARD)
+                    .setChannelId(NotificationChannelController.CHANNEL_ID_CALL_FORWARD)
                     .setOnlyAlertOnce(isRefresh);
 
             Intent intent = new Intent(Intent.ACTION_MAIN);
@@ -548,22 +557,21 @@
                     intent, mSubscriptionManager.getActiveSubscriptionInfo(subId));
             builder.setContentIntent(PendingIntent.getActivity(mContext, subId /* requestCode */,
                     intent, 0));
-            mNotificationManager.notifyAsUser(
+            notifyAsUser(
                     Integer.toString(subId) /* tag */,
                     CALL_FORWARD_NOTIFICATION,
                     builder.build(),
                     UserHandle.ALL);
         } else {
-            List<UserInfo> users = mUserManager.getUsers(true);
-            for (UserInfo user : users) {
-                if (user.isManagedProfile()) {
+            List<UserHandle> users = getUsersExcludeDying();
+            for (UserHandle user : users) {
+                if (mUserManager.isManagedProfile(user.getIdentifier())) {
                     continue;
                 }
-                UserHandle userHandle = user.getUserHandle();
-                mNotificationManager.cancelAsUser(
+                cancelAsUser(
                         Integer.toString(subId) /* tag */,
                         CALL_FORWARD_NOTIFICATION,
-                        userHandle);
+                        user);
             }
         }
     }
@@ -604,12 +612,39 @@
                 .setContentTitle(contentTitle)
                 .setColor(mContext.getResources().getColor(R.color.dialer_theme_color))
                 .setContentText(contentText)
-                .setChannel(NotificationChannelController.CHANNEL_ID_MOBILE_DATA_STATUS)
+                .setChannelId(NotificationChannelController.CHANNEL_ID_MOBILE_DATA_STATUS)
                 .setContentIntent(contentIntent);
         final Notification notif =
                 new Notification.BigTextStyle(builder).bigText(contentText).build();
-        mNotificationManager.notifyAsUser(
-                null /* tag */, DATA_ROAMING_NOTIFICATION, notif, UserHandle.ALL);
+        notifyAsUser(null /* tag */, DATA_ROAMING_NOTIFICATION, notif, UserHandle.ALL);
+    }
+
+    private void notifyAsUser(String tag, int id, Notification notification, UserHandle user) {
+        try {
+            Context contextForUser =
+                    mContext.createPackageContextAsUser(mContext.getPackageName(), 0, user);
+            NotificationManager notificationManager =
+                    (NotificationManager) contextForUser.getSystemService(
+                            Context.NOTIFICATION_SERVICE);
+            notificationManager.notify(tag, id, notification);
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.e(LOG_TAG, "unable to notify for user " + user);
+            e.printStackTrace();
+        }
+    }
+
+    private void cancelAsUser(String tag, int id, UserHandle user) {
+        try {
+            Context contextForUser =
+                    mContext.createPackageContextAsUser(mContext.getPackageName(), 0, user);
+            NotificationManager notificationManager =
+                    (NotificationManager) contextForUser.getSystemService(
+                            Context.NOTIFICATION_SERVICE);
+            notificationManager.cancel(tag, id);
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.e(LOG_TAG, "unable to cancel for user " + user);
+            e.printStackTrace();
+        }
     }
 
     /**
@@ -617,7 +652,7 @@
      */
     /* package */ void hideDataRoamingNotification() {
         if (DBG) log("hideDataRoamingNotification()...");
-        mNotificationManager.cancel(DATA_ROAMING_NOTIFICATION);
+        cancelAsUser(null, DATA_ROAMING_NOTIFICATION, UserHandle.ALL);
     }
 
     /**
@@ -661,12 +696,12 @@
                 .setContentText(contentText)
                 .setOnlyAlertOnce(true)
                 .setOngoing(true)
-                .setChannel(NotificationChannelController.CHANNEL_ID_SIM_HIGH_PRIORITY)
+                .setChannelId(NotificationChannelController.CHANNEL_ID_SIM_HIGH_PRIORITY)
                 .setContentIntent(contentIntent);
         final Notification notification = new Notification.BigTextStyle(builder).bigText(
                 contentText).build();
 
-        mNotificationManager.notifyAsUser(Integer.toString(subId),
+        notifyAsUser(Integer.toString(subId),
                 LIMITED_SIM_FUNCTION_NOTIFICATION,
                 notification, UserHandle.ALL);
         mLimitedSimFunctionNotify.add(subId);
@@ -680,12 +715,12 @@
         if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
             // dismiss all notifications
             for (int id : mLimitedSimFunctionNotify) {
-                mNotificationManager.cancelAsUser(Integer.toString(id),
+                cancelAsUser(Integer.toString(id),
                         LIMITED_SIM_FUNCTION_NOTIFICATION, UserHandle.ALL);
             }
             mLimitedSimFunctionNotify.clear();
         } else if (mLimitedSimFunctionNotify.contains(subId)) {
-            mNotificationManager.cancelAsUser(Integer.toString(subId),
+            cancelAsUser(Integer.toString(subId),
                     LIMITED_SIM_FUNCTION_NOTIFICATION, UserHandle.ALL);
             mLimitedSimFunctionNotify.remove(subId);
         }
@@ -701,7 +736,7 @@
         // from the old SIM if both old & new SIM configured to display the notification.
         mLimitedSimFunctionNotify.removeIf(id -> {
             if (!mSubscriptionManager.isActiveSubId(id)) {
-                mNotificationManager.cancelAsUser(Integer.toString(id),
+                cancelAsUser(Integer.toString(id),
                         LIMITED_SIM_FUNCTION_NOTIFICATION, UserHandle.ALL);
                 return true;
             }
@@ -727,7 +762,7 @@
                         mContext.getString(R.string.notification_network_selection_text, operator))
                 .setShowWhen(false)
                 .setOngoing(true)
-                .setChannel(NotificationChannelController.CHANNEL_ID_ALERT);
+                .setChannelId(NotificationChannelController.CHANNEL_ID_ALERT);
 
         // create the target network operators settings intent
         Intent intent = new Intent(Intent.ACTION_MAIN);
@@ -737,9 +772,9 @@
         intent.setComponent(new ComponentName(
                 mContext.getString(R.string.mobile_network_settings_package),
                 mContext.getString(R.string.mobile_network_settings_class)));
-        intent.putExtra(GsmUmtsOptions.EXTRA_SUB_ID, subId);
+        intent.putExtra(Settings.EXTRA_SUB_ID, subId);
         builder.setContentIntent(PendingIntent.getActivity(mContext, 0, intent, 0));
-        mNotificationManager.notifyAsUser(
+        notifyAsUser(
                 Integer.toString(subId) /* tag */,
                 SELECTED_OPERATOR_FAIL_NOTIFICATION,
                 builder.build(),
@@ -752,7 +787,7 @@
      */
     private void cancelNetworkSelection(int subId) {
         if (DBG) log("cancelNetworkSelection()...");
-        mNotificationManager.cancelAsUser(
+        cancelAsUser(
                 Integer.toString(subId) /* tag */, SELECTED_OPERATOR_FAIL_NOTIFICATION,
                 UserHandle.ALL);
     }
diff --git a/src/com/android/phone/NumberVerificationManager.java b/src/com/android/phone/NumberVerificationManager.java
index 9ec16f8..2298d40 100644
--- a/src/com/android/phone/NumberVerificationManager.java
+++ b/src/com/android/phone/NumberVerificationManager.java
@@ -135,7 +135,7 @@
                 }
 
                 // make sure at least one phone is registered for voice
-                if (phone.getServiceState().getVoiceRegState() == ServiceState.STATE_IN_SERVICE) {
+                if (phone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE) {
                     isAnyPhoneVoiceRegistered = true;
                 }
                 // make sure at least one phone has room for an incoming call.
diff --git a/src/com/android/phone/PhoneDisplayMessage.java b/src/com/android/phone/PhoneDisplayMessage.java
index 2b86a61..199fbb8 100644
--- a/src/com/android/phone/PhoneDisplayMessage.java
+++ b/src/com/android/phone/PhoneDisplayMessage.java
@@ -78,10 +78,11 @@
         sDisplayMessageDialog.getWindow().setType(
                 WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);
         sDisplayMessageDialog.getWindow().addFlags(
-                WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+                WindowManager.LayoutParams.FLAG_DIM_BEHIND
+                | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
+                | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
 
         sDisplayMessageDialog.show();
-        PhoneGlobals.getInstance().wakeUpScreen();
     }
 
     /**
@@ -91,6 +92,9 @@
         if (DBG) log("Dissmissing Display Info Record...");
 
         if (sDisplayMessageDialog != null) {
+            sDisplayMessageDialog.getWindow().clearFlags(
+                    WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
+                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
             sDisplayMessageDialog.dismiss();
             sDisplayMessageDialog = null;
         }
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 77a4152..810ccdf 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -26,6 +26,7 @@
 import android.content.ContextWrapper;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.pm.PackageManager;
 import android.content.res.XmlResourceParser;
 import android.media.AudioManager;
 import android.net.ConnectivityManager;
@@ -37,12 +38,11 @@
 import android.os.Message;
 import android.os.PersistableBundle;
 import android.os.PowerManager;
-import android.os.SystemClock;
 import android.os.SystemProperties;
-import android.os.UpdateLock;
 import android.os.UserManager;
 import android.preference.PreferenceManager;
 import android.provider.Settings;
+import android.sysprop.TelephonyProperties;
 import android.telecom.TelecomManager;
 import android.telephony.AnomalyReporter;
 import android.telephony.CarrierConfigManager;
@@ -67,9 +67,11 @@
 import com.android.internal.telephony.TelephonyIntents;
 import com.android.internal.telephony.dataconnection.DataConnectionReasons;
 import com.android.internal.telephony.dataconnection.DataConnectionReasons.DataDisallowedReasonType;
+import com.android.internal.telephony.ims.ImsResolver;
 import com.android.internal.util.IndentingPrintWriter;
 import com.android.phone.settings.SettingsConstants;
 import com.android.phone.vvm.CarrierVvmPackageInstalledReceiver;
+import com.android.services.telephony.rcs.TelephonyRcsService;
 import com.android.services.telephony.sip.SipAccountRegistry;
 import com.android.services.telephony.sip.SipUtil;
 
@@ -147,7 +149,10 @@
     CallNotifier notifier;
     CallerInfoCache callerInfoCache;
     NotificationMgr notificationMgr;
+    ImsResolver mImsResolver;
+    TelephonyRcsService mTelephonyRcsService;
     public PhoneInterfaceManager phoneMgr;
+    public ImsRcsController imsRcsController;
     CarrierConfigLoader configLoader;
 
     private Phone phoneInEcm;
@@ -187,8 +192,6 @@
     private PowerManager.WakeLock mPartialWakeLock;
     private KeyguardManager mKeyguardManager;
 
-    private UpdateLock mUpdateLock;
-
     private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     private final LocalLog mDataRoamingNotifLog = new LocalLog(50);
 
@@ -274,7 +277,8 @@
                     // not want this running if the device is still in the FBE encrypted state.
                     // This is the same procedure that is triggered in the SipIncomingCallReceiver
                     // upon BOOT_COMPLETED.
-                    UserManager userManager = UserManager.get(sMe);
+                    UserManager userManager =
+                            (UserManager) sMe.getSystemService(Context.USER_SERVICE);
                     if (userManager != null && userManager.isUserUnlocked()) {
                         SipUtil.startSipService();
                     }
@@ -301,8 +305,8 @@
         // 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);
+        sVoiceCapable = ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE))
+                .isVoiceCapable();
         // ...but this might eventually become a PackageManager "system
         // feature" instead, in which case we'd do something like:
         // sVoiceCapable =
@@ -318,6 +322,19 @@
             // Initialize the telephony framework
             PhoneFactory.makeDefaultPhones(this);
 
+            // Only bring up ImsResolver if the device supports having an IMS stack.
+            if (getPackageManager().hasSystemFeature(
+                    PackageManager.FEATURE_TELEPHONY_IMS)) {
+                // Get the package name of the default IMS implementation.
+                String defaultImsMmtelPackage = getResources().getString(
+                        R.string.config_ims_mmtel_package);
+                String defaultImsRcsPackage = getResources().getString(
+                        R.string.config_ims_rcs_package);
+                mImsResolver = new ImsResolver(this, defaultImsMmtelPackage,
+                        defaultImsRcsPackage, PhoneFactory.getPhones().length);
+                mImsResolver.initialize();
+            }
+
             // Start TelephonyDebugService After the default phone is created.
             Intent intent = new Intent(this, TelephonyDebugService.class);
             startService(intent);
@@ -347,12 +364,6 @@
 
             mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
 
-            // 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);
-
             // Create the CallerInfoCache singleton, which remembers custom ring tone and
             // send-to-voicemail settings.
             //
@@ -361,6 +372,15 @@
 
             phoneMgr = PhoneInterfaceManager.init(this);
 
+            imsRcsController = ImsRcsController.init(this);
+
+            if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS)) {
+                mTelephonyRcsService = new TelephonyRcsService(this,
+                        PhoneFactory.getPhones().length);
+                mTelephonyRcsService.initialize();
+                imsRcsController.setRcsService(mTelephonyRcsService);
+            }
+
             configLoader = CarrierConfigLoader.init(this);
 
             // Create the CallNotifier singleton, which handles
@@ -392,14 +412,12 @@
             IntentFilter sipIntentFilter = new IntentFilter(Intent.ACTION_BOOT_COMPLETED);
             sipIntentFilter.addAction(SipManager.ACTION_SIP_SERVICE_UP);
             sipIntentFilter.addAction(SipManager.ACTION_SIP_CALL_OPTION_CHANGED);
-            sipIntentFilter.addAction(SipManager.ACTION_SIP_REMOVE_PHONE);
+            sipIntentFilter.addAction(SipManager.ACTION_SIP_REMOVE_PROFILE);
             registerReceiver(mSipReceiver, sipIntentFilter);
 
             mCarrierVvmPackageInstalledReceiver.register(this);
 
             //set the default values for the preferences in the phone.
-            PreferenceManager.setDefaultValues(this, R.xml.network_setting_fragment, false);
-
             PreferenceManager.setDefaultValues(this, R.xml.call_feature_setting, false);
         }
 
@@ -416,9 +434,9 @@
                     android.provider.Settings.System.HEARING_AID,
                     0);
             AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
-            audioManager.setParameter(SettingsConstants.HAC_KEY,
-                    hac == SettingsConstants.HAC_ENABLED
-                            ? SettingsConstants.HAC_VAL_ON : SettingsConstants.HAC_VAL_OFF);
+            audioManager.setParameters(
+                    SettingsConstants.HAC_KEY + "=" + (hac == SettingsConstants.HAC_ENABLED
+                            ? SettingsConstants.HAC_VAL_ON : SettingsConstants.HAC_VAL_OFF));
         }
     }
 
@@ -445,6 +463,10 @@
         return PhoneFactory.getPhone(SubscriptionManager.getPhoneId(subId));
     }
 
+    public ImsResolver getImsResolver() {
+        return mImsResolver;
+    }
+
     /* package */ CallManager getCallManager() {
         return mCM;
     }
@@ -454,7 +476,8 @@
     }
 
     public PersistableBundle getCarrierConfigForSubId(int subId) {
-        return configLoader.getConfigForSubId(subId, getOpPackageName());
+        return configLoader.getConfigForSubIdWithFeature(subId, getOpPackageName(),
+                getAttributionTag());
     }
 
     private void registerSettingsObserver() {
@@ -511,19 +534,6 @@
         mPUKEntryProgressDialog = dialog;
     }
 
-    /**
-     * 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(), "android.phone:WAKE");
-            }
-        }
-    }
-
     KeyguardManager getKeyguardManager() {
         return mKeyguardManager;
     }
@@ -555,6 +565,9 @@
                 maybeTurnCellOn(context, isAirplaneNewlyOn);
                 break;
         }
+        for (Phone phone : PhoneFactory.getPhones()) {
+            phone.getServiceStateTracker().onAirplaneModeChanged(isAirplaneNewlyOn);
+        }
     }
 
     /*
@@ -571,7 +584,7 @@
         Log.i(LOG_TAG, "Turning radio off - airplane");
         Settings.Global.putInt(context.getContentResolver(), Settings.Global.CELL_ON,
                  PhoneConstants.CELL_OFF_DUE_TO_AIRPLANE_MODE_FLAG);
-        SystemProperties.set("persist.radio.airplane_mode_on", "1");
+        TelephonyProperties.airplane_mode_on(true); // true means int value 1
         Settings.Global.putInt(getContentResolver(), Settings.Global.ENABLE_CELLULAR_ON_BOOT, 0);
         PhoneUtils.setRadioPower(false);
     }
@@ -582,7 +595,7 @@
                 PhoneConstants.CELL_ON_FLAG);
         Settings.Global.putInt(getContentResolver(), Settings.Global.ENABLE_CELLULAR_ON_BOOT,
                 1);
-        SystemProperties.set("persist.radio.airplane_mode_on", "0");
+        TelephonyProperties.airplane_mode_on(false); // false means int value 0
         PhoneUtils.setRadioPower(true);
     }
 
@@ -594,7 +607,9 @@
 
             if (tm != null && tm.isInEmergencyCall()) {
                 // Switch airplane mode back to off.
-                ConnectivityManager.from(this).setAirplaneMode(false);
+                ConnectivityManager cm =
+                        (ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE);
+                cm.setAirplaneMode(false);
                 Toast.makeText(this, R.string.radio_off_during_emergency_call, Toast.LENGTH_LONG)
                         .show();
                 Log.i(LOG_TAG, "Ignoring airplane mode: emergency call. Turning airplane off");
@@ -657,7 +672,8 @@
                     if (TelephonyCapabilities.supportsEcm(phoneInEcm)) {
                         Log.d(LOG_TAG, "Emergency Callback Mode arrived in PhoneApp.");
                         // Start Emergency Callback Mode service
-                        if (intent.getBooleanExtra("phoneinECMState", false)) {
+                        if (intent.getBooleanExtra(
+                                TelephonyManager.EXTRA_PHONE_IN_ECM_STATE, false)) {
                             context.startService(new Intent(context,
                                     EmergencyCallbackModeService.class));
                         } else {
@@ -703,7 +719,7 @@
             } else if (action.equals(SipManager.ACTION_SIP_SERVICE_UP)
                     || action.equals(SipManager.ACTION_SIP_CALL_OPTION_CHANGED)) {
                 sipAccountRegistry.setup(context);
-            } else if (action.equals(SipManager.ACTION_SIP_REMOVE_PHONE)) {
+            } else if (action.equals(SipManager.ACTION_SIP_REMOVE_PROFILE)) {
                 if (DBG) {
                     Log.d(LOG_TAG, "SIP_REMOVE_PHONE "
                             + intent.getStringExtra(SipManager.EXTRA_LOCAL_URI));
@@ -892,6 +908,20 @@
         pw.increaseIndent();
         mDataRoamingNotifLog.dump(fd, pw, args);
         pw.decreaseIndent();
+        pw.println("ImsResolver:");
+        pw.increaseIndent();
+        try {
+            if (mImsResolver != null) mImsResolver.dump(fd, pw, args);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        pw.decreaseIndent();
+        pw.println("RcsService:");
+        try {
+            if (mTelephonyRcsService != null) mTelephonyRcsService.dump(fd, pw, args);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         pw.decreaseIndent();
         pw.println("------- End PhoneGlobals -------");
     }
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index f8541bc..a00e6cc 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -18,9 +18,11 @@
 
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 
+import static com.android.internal.telephony.PhoneConstants.PHONE_TYPE_IMS;
 import static com.android.internal.telephony.PhoneConstants.SUBSCRIPTION_KEY;
 
 import android.Manifest.permission;
+import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.AppOpsManager;
 import android.app.PendingIntent;
@@ -33,7 +35,6 @@
 import android.content.pm.ComponentInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
-import android.net.NetworkStats;
 import android.net.Uri;
 import android.os.AsyncResult;
 import android.os.Binder;
@@ -44,13 +45,13 @@
 import android.os.Looper;
 import android.os.Message;
 import android.os.Messenger;
+import android.os.ParcelFileDescriptor;
 import android.os.ParcelUuid;
 import android.os.PersistableBundle;
+import android.os.Process;
 import android.os.RemoteException;
 import android.os.ResultReceiver;
-import android.os.ServiceManager;
-import android.os.ShellCallback;
-import android.os.SystemProperties;
+import android.os.ServiceSpecificException;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.os.WorkSource;
@@ -58,15 +59,20 @@
 import android.provider.DeviceConfig;
 import android.provider.Settings;
 import android.provider.Telephony;
+import android.sysprop.TelephonyProperties;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
+import android.telephony.Annotation.ApnType;
+import android.telephony.CallForwardingInfo;
 import android.telephony.CarrierConfigManager;
 import android.telephony.CarrierRestrictionRules;
+import android.telephony.CellIdentity;
+import android.telephony.CellIdentityCdma;
+import android.telephony.CellIdentityGsm;
 import android.telephony.CellInfo;
 import android.telephony.CellInfoGsm;
 import android.telephony.CellInfoWcdma;
-import android.telephony.CellLocation;
 import android.telephony.ClientRequestStats;
 import android.telephony.ICellInfoCallback;
 import android.telephony.IccOpenLogicalChannelResponse;
@@ -78,11 +84,11 @@
 import android.telephony.PhoneNumberRange;
 import android.telephony.RadioAccessFamily;
 import android.telephony.RadioAccessSpecifier;
-import android.telephony.Rlog;
 import android.telephony.ServiceState;
 import android.telephony.SignalStrength;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyFrameworkInitializer;
 import android.telephony.TelephonyHistogram;
 import android.telephony.TelephonyManager;
 import android.telephony.TelephonyScanManager;
@@ -90,12 +96,11 @@
 import android.telephony.UiccSlotInfo;
 import android.telephony.UssdResponse;
 import android.telephony.VisualVoicemailSmsFilterSettings;
-import android.telephony.cdma.CdmaCellLocation;
 import android.telephony.data.ApnSetting;
-import android.telephony.data.ApnSetting.ApnType;
 import android.telephony.emergency.EmergencyNumber;
-import android.telephony.gsm.GsmCellLocation;
+import android.telephony.ims.ImsException;
 import android.telephony.ims.ProvisioningManager;
+import android.telephony.ims.RegistrationManager;
 import android.telephony.ims.aidl.IImsCapabilityCallback;
 import android.telephony.ims.aidl.IImsConfig;
 import android.telephony.ims.aidl.IImsConfigCallback;
@@ -103,33 +108,35 @@
 import android.telephony.ims.aidl.IImsRcsFeature;
 import android.telephony.ims.aidl.IImsRegistration;
 import android.telephony.ims.aidl.IImsRegistrationCallback;
+import android.telephony.ims.feature.ImsFeature;
 import android.telephony.ims.feature.MmTelFeature;
+import android.telephony.ims.feature.RcsFeature;
 import android.telephony.ims.stub.ImsConfigImplBase;
 import android.telephony.ims.stub.ImsRegistrationImplBase;
 import android.text.TextUtils;
 import android.util.ArraySet;
 import android.util.Log;
 import android.util.Pair;
-import android.util.Slog;
 
-import com.android.ims.ImsException;
 import com.android.ims.ImsManager;
 import com.android.ims.internal.IImsServiceFeatureCallback;
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.CallForwardInfo;
 import com.android.internal.telephony.CallManager;
 import com.android.internal.telephony.CallStateException;
 import com.android.internal.telephony.CarrierInfoManager;
 import com.android.internal.telephony.CarrierResolver;
 import com.android.internal.telephony.CellNetworkScanResult;
 import com.android.internal.telephony.CommandException;
+import com.android.internal.telephony.CommandsInterface;
 import com.android.internal.telephony.DefaultPhoneNotifier;
 import com.android.internal.telephony.HalVersion;
+import com.android.internal.telephony.IBooleanConsumer;
 import com.android.internal.telephony.IIntegerConsumer;
 import com.android.internal.telephony.INumberVerificationCallback;
 import com.android.internal.telephony.ITelephony;
 import com.android.internal.telephony.IccCard;
 import com.android.internal.telephony.LocaleTracker;
-import com.android.internal.telephony.MccTable;
 import com.android.internal.telephony.NetworkScanRequestTracker;
 import com.android.internal.telephony.OperatorInfo;
 import com.android.internal.telephony.Phone;
@@ -141,18 +148,21 @@
 import com.android.internal.telephony.RIL;
 import com.android.internal.telephony.RILConstants;
 import com.android.internal.telephony.ServiceStateTracker;
-import com.android.internal.telephony.SmsApplication;
-import com.android.internal.telephony.SmsApplication.SmsApplicationData;
 import com.android.internal.telephony.SmsController;
 import com.android.internal.telephony.SmsPermissions;
 import com.android.internal.telephony.SubscriptionController;
+import com.android.internal.telephony.TelephonyIntents;
 import com.android.internal.telephony.TelephonyPermissions;
 import com.android.internal.telephony.dataconnection.ApnSettingUtils;
 import com.android.internal.telephony.emergency.EmergencyNumberTracker;
 import com.android.internal.telephony.euicc.EuiccConnector;
 import com.android.internal.telephony.ims.ImsResolver;
+import com.android.internal.telephony.imsphone.ImsPhone;
+import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
 import com.android.internal.telephony.metrics.TelephonyMetrics;
+import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppType;
 import com.android.internal.telephony.uicc.IccIoResult;
+import com.android.internal.telephony.uicc.IccRecords;
 import com.android.internal.telephony.uicc.IccUtils;
 import com.android.internal.telephony.uicc.SIMRecords;
 import com.android.internal.telephony.uicc.UiccCard;
@@ -160,6 +170,7 @@
 import com.android.internal.telephony.uicc.UiccController;
 import com.android.internal.telephony.uicc.UiccProfile;
 import com.android.internal.telephony.uicc.UiccSlot;
+import com.android.internal.telephony.util.LocaleUtils;
 import com.android.internal.telephony.util.VoicemailNotificationSettingsUtil;
 import com.android.internal.util.HexDump;
 import com.android.phone.settings.PickSmsSubscriptionActivity;
@@ -167,12 +178,12 @@
 import com.android.phone.vvm.RemoteVvmTaskManager;
 import com.android.phone.vvm.VisualVoicemailSettingsUtil;
 import com.android.phone.vvm.VisualVoicemailSmsFilterConfig;
+import com.android.telephony.Rlog;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -180,6 +191,8 @@
 import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.function.Consumer;
 
 /**
  * Implementation of the ITelephony interface.
@@ -257,8 +270,25 @@
     private static final int EVENT_ENABLE_MODEM_DONE = 69;
     private static final int CMD_GET_MODEM_STATUS = 70;
     private static final int EVENT_GET_MODEM_STATUS_DONE = 71;
-    private static final int CMD_ERASE_MODEM_CONFIG = 72;
-    private static final int EVENT_ERASE_MODEM_CONFIG_DONE = 73;
+    private static final int CMD_SET_FORBIDDEN_PLMNS = 72;
+    private static final int EVENT_SET_FORBIDDEN_PLMNS_DONE = 73;
+    private static final int CMD_ERASE_MODEM_CONFIG = 74;
+    private static final int EVENT_ERASE_MODEM_CONFIG_DONE = 75;
+    private static final int CMD_CHANGE_ICC_LOCK_PASSWORD = 76;
+    private static final int EVENT_CHANGE_ICC_LOCK_PASSWORD_DONE = 77;
+    private static final int CMD_SET_ICC_LOCK_ENABLED = 78;
+    private static final int EVENT_SET_ICC_LOCK_ENABLED_DONE = 79;
+    private static final int CMD_SET_SYSTEM_SELECTION_CHANNELS = 80;
+    private static final int EVENT_SET_SYSTEM_SELECTION_CHANNELS_DONE = 81;
+    private static final int MSG_NOTIFY_USER_ACTIVITY = 82;
+    private static final int CMD_GET_CALL_FORWARDING = 83;
+    private static final int EVENT_GET_CALL_FORWARDING_DONE = 84;
+    private static final int CMD_SET_CALL_FORWARDING = 85;
+    private static final int EVENT_SET_CALL_FORWARDING_DONE = 86;
+    private static final int CMD_GET_CALL_WAITING = 87;
+    private static final int EVENT_GET_CALL_WAITING_DONE = 88;
+    private static final int CMD_SET_CALL_WAITING = 89;
+    private static final int EVENT_SET_CALL_WAITING_DONE = 90;
 
     // Parameters of select command.
     private static final int SELECT_COMMAND = 0xA4;
@@ -266,15 +296,12 @@
     private static final int SELECT_P2 = 0;
     private static final int SELECT_P3 = 0x10;
 
-    private static final String DEFAULT_NETWORK_MODE_PROPERTY_NAME = "ro.telephony.default_network";
-    private static final String DEFAULT_DATA_ROAMING_PROPERTY_NAME = "ro.com.android.dataroaming";
-    private static final String DEFAULT_MOBILE_DATA_PROPERTY_NAME = "ro.com.android.mobiledata";
-
     /** The singleton instance. */
     private static PhoneInterfaceManager sInstance;
 
     private PhoneGlobals mApp;
     private CallManager mCM;
+    private ImsResolver mImsResolver;
     private UserManager mUserManager;
     private AppOpsManager mAppOps;
     private MainThreadHandler mMainThreadHandler;
@@ -282,6 +309,10 @@
     private SharedPreferences mTelephonySharedPreferences;
     private PhoneConfigurationManager mPhoneConfigurationManager;
 
+    /** User Activity */
+    private AtomicBoolean mNotifyUserActivity;
+    private static final int USER_ACTIVITY_NOTIFICATION_DELAY = 200;
+
     private static final String PREF_CARRIERS_ALPHATAG_PREFIX = "carrier_alphtag_";
     private static final String PREF_CARRIERS_NUMBER_PREFIX = "carrier_number_";
     private static final String PREF_CARRIERS_SUBSCRIBER_PREFIX = "carrier_subscriber_";
@@ -796,6 +827,148 @@
                     getPhoneFromRequest(request).getAvailableNetworks(onCompleted);
                     break;
 
+                case CMD_GET_CALL_FORWARDING:
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_GET_CALL_FORWARDING_DONE, request);
+                    int callForwardingReason = (Integer) request.argument;
+                    getPhoneFromRequest(request).getCallForwardingOption(
+                            callForwardingReason, onCompleted);
+                    break;
+
+                case EVENT_GET_CALL_FORWARDING_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    CallForwardingInfo callForwardingInfo = null;
+                    if (ar.exception == null && ar.result != null) {
+                        CallForwardInfo[] callForwardInfos = (CallForwardInfo[]) ar.result;
+                        for (CallForwardInfo callForwardInfo : callForwardInfos) {
+                            // Service Class is a bit mask per 3gpp 27.007. Search for
+                            // any service for voice call.
+                            if ((callForwardInfo.serviceClass
+                                    & CommandsInterface.SERVICE_CLASS_VOICE) > 0) {
+                                callForwardingInfo = new CallForwardingInfo(
+                                        callForwardInfo.serviceClass, callForwardInfo.reason,
+                                                callForwardInfo.number,
+                                                        callForwardInfo.timeSeconds);
+                                break;
+                            }
+                        }
+                        // Didn't find a call forward info for voice call.
+                        if (callForwardingInfo == null) {
+                            callForwardingInfo = new CallForwardingInfo(
+                                    CallForwardingInfo.STATUS_UNKNOWN_ERROR,
+                                            0 /* reason */, null /* number */, 0 /* timeout */);
+                        }
+                    } else {
+                        if (ar.result == null) {
+                            loge("EVENT_GET_CALL_FORWARDING_DONE: Empty response");
+                        }
+                        if (ar.exception != null) {
+                            loge("EVENT_GET_CALL_FORWARDING_DONE: Exception: " + ar.exception);
+                        }
+                        int errorCode = CallForwardingInfo.STATUS_UNKNOWN_ERROR;
+                        if (ar.exception instanceof CommandException) {
+                            CommandException.Error error =
+                                    ((CommandException) (ar.exception)).getCommandError();
+                            if (error == CommandException.Error.FDN_CHECK_FAILURE) {
+                                errorCode = CallForwardingInfo.STATUS_FDN_CHECK_FAILURE;
+                            } else if (error == CommandException.Error.REQUEST_NOT_SUPPORTED) {
+                                errorCode = CallForwardingInfo.STATUS_NOT_SUPPORTED;
+                            }
+                        }
+                        callForwardingInfo = new CallForwardingInfo(
+                                errorCode, 0 /* reason */, null /* number */, 0 /* timeout */);
+                    }
+                    request.result = callForwardingInfo;
+                    notifyRequester(request);
+                    break;
+
+                case CMD_SET_CALL_FORWARDING:
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_SET_CALL_FORWARDING_DONE, request);
+                    CallForwardingInfo callForwardingInfoToSet =
+                            (CallForwardingInfo) request.argument;
+                    getPhoneFromRequest(request).setCallForwardingOption(
+                            callForwardingInfoToSet.getStatus(),
+                            callForwardingInfoToSet.getReason(),
+                            callForwardingInfoToSet.getNumber(),
+                            callForwardingInfoToSet.getTimeoutSeconds(), onCompleted);
+                    break;
+
+                case EVENT_SET_CALL_FORWARDING_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    if (ar.exception == null) {
+                        request.result = true;
+                    } else {
+                        request.result = false;
+                        loge("setCallForwarding exception: " + ar.exception);
+                    }
+                    notifyRequester(request);
+                    break;
+
+                case CMD_GET_CALL_WAITING:
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_GET_CALL_WAITING_DONE, request);
+                    getPhoneFromRequest(request).getCallWaiting(onCompleted);
+                    break;
+
+                case EVENT_GET_CALL_WAITING_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    int callForwardingStatus = TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR;
+                    if (ar.exception == null && ar.result != null) {
+                        int[] callForwardResults = (int[]) ar.result;
+                        // Service Class is a bit mask per 3gpp 27.007.
+                        // Search for any service for voice call.
+                        if (callForwardResults.length > 1
+                                && ((callForwardResults[1]
+                                        & CommandsInterface.SERVICE_CLASS_VOICE) > 0)) {
+                            callForwardingStatus = callForwardResults[0] == 0
+                                    ? TelephonyManager.CALL_WAITING_STATUS_INACTIVE
+                                            : TelephonyManager.CALL_WAITING_STATUS_ACTIVE;
+                        } else {
+                            callForwardingStatus = TelephonyManager.CALL_WAITING_STATUS_INACTIVE;
+                        }
+                    } else {
+                        if (ar.result == null) {
+                            loge("EVENT_GET_CALL_WAITING_DONE: Empty response");
+                        }
+                        if (ar.exception != null) {
+                            loge("EVENT_GET_CALL_WAITING_DONE: Exception: " + ar.exception);
+                        }
+                        if (ar.exception instanceof CommandException) {
+                            CommandException.Error error =
+                                    ((CommandException) (ar.exception)).getCommandError();
+                            if (error == CommandException.Error.REQUEST_NOT_SUPPORTED) {
+                                callForwardingStatus =
+                                        TelephonyManager.CALL_WAITING_STATUS_NOT_SUPPORTED;
+                            }
+                        }
+                    }
+                    request.result = callForwardingStatus;
+                    notifyRequester(request);
+                    break;
+
+                case CMD_SET_CALL_WAITING:
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_SET_CALL_WAITING_DONE, request);
+                    boolean isEnable = (Boolean) request.argument;
+                    getPhoneFromRequest(request).setCallWaiting(isEnable, onCompleted);
+                    break;
+
+                case EVENT_SET_CALL_WAITING_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    if (ar.exception == null) {
+                        request.result = true;
+                    } else {
+                        request.result = false;
+                        loge("setCallWaiting exception: " + ar.exception);
+                    }
+                    notifyRequester(request);
+                    break;
+
                 case EVENT_PERFORM_NETWORK_SCAN_DONE:
                     ar = (AsyncResult) msg.obj;
                     request = (MainThreadRequest) ar.userObj;
@@ -855,14 +1028,47 @@
                     onCompleted = obtainMessage(EVENT_GET_MODEM_ACTIVITY_INFO_DONE, request);
                     if (defaultPhone != null) {
                         defaultPhone.getModemActivityInfo(onCompleted, request.workSource);
+                    } else {
+                        ResultReceiver result = (ResultReceiver) request.argument;
+                        Bundle bundle = new Bundle();
+                        bundle.putParcelable(TelephonyManager.MODEM_ACTIVITY_RESULT_KEY,
+                                new ModemActivityInfo(0, 0, 0, new int[0], 0));
+                        result.send(0, bundle);
                     }
                     break;
 
                 case EVENT_GET_MODEM_ACTIVITY_INFO_DONE:
                     ar = (AsyncResult) msg.obj;
                     request = (MainThreadRequest) ar.userObj;
+                    ResultReceiver result = (ResultReceiver) request.argument;
+
+                    ModemActivityInfo ret = new ModemActivityInfo(0, 0, 0, new int[0], 0);
                     if (ar.exception == null && ar.result != null) {
-                        request.result = ar.result;
+                        // Update the last modem activity info and the result of the request.
+                        ModemActivityInfo info = (ModemActivityInfo) ar.result;
+                        if (isModemActivityInfoValid(info)) {
+                            int[] mergedTxTimeMs = new int[ModemActivityInfo.TX_POWER_LEVELS];
+                            int[] txTimeMs = info.getTransmitTimeMillis();
+                            int[] lastModemTxTimeMs = mLastModemActivityInfo
+                                    .getTransmitTimeMillis();
+                            for (int i = 0; i < mergedTxTimeMs.length; i++) {
+                                mergedTxTimeMs[i] = txTimeMs[i] + lastModemTxTimeMs[i];
+                            }
+                            mLastModemActivityInfo.setTimestamp(info.getTimestamp());
+                            mLastModemActivityInfo.setSleepTimeMillis(info.getSleepTimeMillis()
+                                    + mLastModemActivityInfo.getSleepTimeMillis());
+                            mLastModemActivityInfo.setIdleTimeMillis(info.getIdleTimeMillis()
+                                    + mLastModemActivityInfo.getIdleTimeMillis());
+                            mLastModemActivityInfo.setTransmitTimeMillis(mergedTxTimeMs);
+                            mLastModemActivityInfo.setReceiveTimeMillis(
+                                    info.getReceiveTimeMillis()
+                                            + mLastModemActivityInfo.getReceiveTimeMillis());
+                        }
+                        ret = new ModemActivityInfo(mLastModemActivityInfo.getTimestamp(),
+                                mLastModemActivityInfo.getSleepTimeMillis(),
+                                mLastModemActivityInfo.getIdleTimeMillis(),
+                                mLastModemActivityInfo.getTransmitTimeMillis(),
+                                mLastModemActivityInfo.getReceiveTimeMillis());
                     } else {
                         if (ar.result == null) {
                             loge("queryModemActivityInfo: Empty response");
@@ -873,10 +1079,9 @@
                             loge("queryModemActivityInfo: Unknown exception");
                         }
                     }
-                    // Result cannot be null. Return ModemActivityInfo with all fields set to 0.
-                    if (request.result == null) {
-                        request.result = new ModemActivityInfo(0, 0, 0, null, 0, 0);
-                    }
+                    Bundle bundle = new Bundle();
+                    bundle.putParcelable(TelephonyManager.MODEM_ACTIVITY_RESULT_KEY, ret);
+                    result.send(0, bundle);
                     notifyRequester(request);
                     break;
 
@@ -1080,11 +1285,13 @@
                     try {
                         if (ar.exception != null) {
                             Log.e(LOG_TAG, "Exception retrieving CellInfo=" + ar.exception);
-                            cb.onError(TelephonyManager.CellInfoCallback.ERROR_MODEM_ERROR,
-                                    new android.os.ParcelableException(ar.exception));
+                            cb.onError(
+                                    TelephonyManager.CellInfoCallback.ERROR_MODEM_ERROR,
+                                    ar.exception.getClass().getName(),
+                                    ar.exception.toString());
                         } else if (ar.result == null) {
                             Log.w(LOG_TAG, "Timeout Waiting for CellInfo!");
-                            cb.onError(TelephonyManager.CellInfoCallback.ERROR_TIMEOUT, null);
+                            cb.onError(TelephonyManager.CellInfoCallback.ERROR_TIMEOUT, null, null);
                         } else {
                             // use the result as returned
                             cb.onCellInfo((List<CellInfo>) ar.result);
@@ -1097,7 +1304,7 @@
                     request = (MainThreadRequest) msg.obj;
                     WorkSource ws = (WorkSource) request.argument;
                     Phone phone = getPhoneFromRequest(request);
-                    phone.getCellLocation(ws, obtainMessage(EVENT_GET_CELL_LOCATION_DONE, request));
+                    phone.getCellIdentity(ws, obtainMessage(EVENT_GET_CELL_LOCATION_DONE, request));
                     break;
                 case EVENT_GET_CELL_LOCATION_DONE:
                     ar = (AsyncResult) msg.obj;
@@ -1107,7 +1314,7 @@
                     } else {
                         phone = getPhoneFromRequest(request);
                         request.result = (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA)
-                                ? new CdmaCellLocation() : new GsmCellLocation();
+                                ? new CellIdentityCdma() : new CellIdentityGsm();
                     }
 
                     synchronized (request) {
@@ -1172,6 +1379,67 @@
                     }
                     notifyRequester(request);
                     break;
+                case CMD_SET_SYSTEM_SELECTION_CHANNELS: {
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_SET_SYSTEM_SELECTION_CHANNELS_DONE, request);
+                    Pair<List<RadioAccessSpecifier>, Consumer<Boolean>> args =
+                            (Pair<List<RadioAccessSpecifier>, Consumer<Boolean>>) request.argument;
+                    request.phone.setSystemSelectionChannels(args.first, onCompleted);
+                    break;
+                }
+                case EVENT_SET_SYSTEM_SELECTION_CHANNELS_DONE: {
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    Pair<List<RadioAccessSpecifier>, Consumer<Boolean>> args =
+                            (Pair<List<RadioAccessSpecifier>, Consumer<Boolean>>) request.argument;
+                    args.second.accept(ar.exception == null);
+                    notifyRequester(request);
+                    break;
+                }
+                case EVENT_SET_FORBIDDEN_PLMNS_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    if (ar.exception == null && ar.result != null) {
+                        request.result = ar.result;
+                    } else {
+                        request.result = -1;
+                        loge("Failed to set Forbidden Plmns");
+                        if (ar.result == null) {
+                            loge("setForbidenPlmns: Empty response");
+                        } else if (ar.exception != null) {
+                            loge("setForbiddenPlmns: Exception: " + ar.exception);
+                            request.result = -1;
+                        } else {
+                            loge("setForbiddenPlmns: Unknown exception");
+                        }
+                    }
+                    notifyRequester(request);
+                    break;
+                case CMD_SET_FORBIDDEN_PLMNS:
+                    request = (MainThreadRequest) msg.obj;
+                    uiccCard = getUiccCardFromRequest(request);
+                    if (uiccCard == null) {
+                        loge("setForbiddenPlmns: UiccCard is null");
+                        request.result = -1;
+                        notifyRequester(request);
+                        break;
+                    }
+                    Pair<Integer, List<String>> setFplmnsArgs =
+                            (Pair<Integer, List<String>>) request.argument;
+                    appType = setFplmnsArgs.first;
+                    List<String> fplmns = setFplmnsArgs.second;
+                    uiccApp = uiccCard.getApplicationByType(appType);
+                    if (uiccApp == null) {
+                        loge("setForbiddenPlmns: no app with specified type -- " + appType);
+                        request.result = -1;
+                        loge("Failed to get UICC App");
+                        notifyRequester(request);
+                    } else {
+                        onCompleted = obtainMessage(EVENT_SET_FORBIDDEN_PLMNS_DONE, request);
+                        ((SIMRecords) uiccApp.getIccRecords())
+                                .setForbiddenPlmns(onCompleted, fplmns);
+                    }
+                    break;
                 case CMD_ERASE_MODEM_CONFIG:
                     request = (MainThreadRequest) msg.obj;
                     onCompleted = obtainMessage(EVENT_ERASE_MODEM_CONFIG_DONE, request);
@@ -1180,6 +1448,50 @@
                 case EVENT_ERASE_MODEM_CONFIG_DONE:
                     handleNullReturnEvent(msg, "eraseModemConfig");
                     break;
+
+                case CMD_CHANGE_ICC_LOCK_PASSWORD:
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_CHANGE_ICC_LOCK_PASSWORD_DONE, request);
+                    Pair<String, String> changed = (Pair<String, String>) request.argument;
+                    getPhoneFromRequest(request).getIccCard().changeIccLockPassword(
+                            changed.first, changed.second, onCompleted);
+                    break;
+                case EVENT_CHANGE_ICC_LOCK_PASSWORD_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    if (ar.exception == null) {
+                        request.result = TelephonyManager.CHANGE_ICC_LOCK_SUCCESS;
+                    } else {
+                        request.result = msg.arg1;
+                    }
+                    notifyRequester(request);
+                    break;
+
+                case CMD_SET_ICC_LOCK_ENABLED:
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_SET_ICC_LOCK_ENABLED_DONE, request);
+                    Pair<Boolean, String> enabled = (Pair<Boolean, String>) request.argument;
+                    getPhoneFromRequest(request).getIccCard().setIccLockEnabled(
+                            enabled.first, enabled.second, onCompleted);
+                    break;
+                case EVENT_SET_ICC_LOCK_ENABLED_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    if (ar.exception == null) {
+                        request.result = TelephonyManager.CHANGE_ICC_LOCK_SUCCESS;
+                    } else {
+                        request.result = msg.arg1;
+                    }
+                    notifyRequester(request);
+                    break;
+
+                case MSG_NOTIFY_USER_ACTIVITY:
+                    removeMessages(MSG_NOTIFY_USER_ACTIVITY);
+                    Intent intent = new Intent(TelephonyIntents.ACTION_USER_ACTIVITY_NOTIFICATION);
+                    intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
+                    getDefaultPhone().getContext().sendBroadcastAsUser(
+                            intent, UserHandle.ALL, permission.USER_ACTIVITY);
+                    break;
                 default:
                     Log.w(LOG_TAG, "MainThreadHandler: unexpected message code: " + msg.what);
                     break;
@@ -1342,6 +1654,7 @@
     /* package */ PhoneInterfaceManager(PhoneGlobals app) {
         mApp = app;
         mCM = PhoneGlobals.getInstance().mCM;
+        mImsResolver = PhoneGlobals.getInstance().getImsResolver();
         mUserManager = (UserManager) app.getSystemService(Context.USER_SERVICE);
         mAppOps = (AppOpsManager)app.getSystemService(Context.APP_OPS_SERVICE);
         mMainThreadHandler = new MainThreadHandler();
@@ -1350,6 +1663,7 @@
                 PreferenceManager.getDefaultSharedPreferences(mApp);
         mNetworkScanRequestTracker = new NetworkScanRequestTracker();
         mPhoneConfigurationManager = PhoneConfigurationManager.getInstance();
+        mNotifyUserActivity = new AtomicBoolean(false);
 
         publish();
     }
@@ -1362,7 +1676,10 @@
     private void publish() {
         if (DBG) log("publish: " + this);
 
-        ServiceManager.addService("phone", this);
+        TelephonyFrameworkInitializer
+                .getTelephonyServiceManager()
+                .getTelephonyServiceRegisterer()
+                .register(this);
     }
 
     private Phone getPhoneFromRequest(MainThreadRequest request) {
@@ -1403,6 +1720,16 @@
         }
     }
 
+    private boolean isImsAvailableOnDevice() {
+        PackageManager pm = getDefaultPhone().getContext().getPackageManager();
+        if (pm == null) {
+            // For some reason package manger is not available.. This will fail internally anyway,
+            // so do not throw error and allow.
+            return true;
+        }
+        return pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS, 0);
+    }
+
     public void dial(String number) {
         dialForSubscriber(getPreferredVoiceSubscription(), number);
     }
@@ -1444,7 +1771,7 @@
         // from the context of the phone app.
         enforceCallPermission();
 
-        if (mAppOps.noteOp(AppOpsManager.OP_CALL_PHONE, Binder.getCallingUid(), callingPackage)
+        if (mAppOps.noteOp(AppOpsManager.OPSTR_CALL_PHONE, Binder.getCallingUid(), callingPackage)
                 != AppOpsManager.MODE_ALLOWED) {
             return;
         }
@@ -1479,29 +1806,16 @@
         }
     }
 
-    public boolean supplyPin(String pin) {
-        return supplyPinForSubscriber(getDefaultSubscription(), pin);
-    }
-
     public boolean supplyPinForSubscriber(int subId, String pin) {
         int [] resultArray = supplyPinReportResultForSubscriber(subId, pin);
         return (resultArray[0] == PhoneConstants.PIN_RESULT_SUCCESS) ? true : false;
     }
 
-    public boolean supplyPuk(String puk, String pin) {
-        return supplyPukForSubscriber(getDefaultSubscription(), puk, pin);
-    }
-
     public boolean supplyPukForSubscriber(int subId, String puk, String pin) {
         int [] resultArray = supplyPukReportResultForSubscriber(subId, puk, pin);
         return (resultArray[0] == PhoneConstants.PIN_RESULT_SUCCESS) ? true : false;
     }
 
-    /** {@hide} */
-    public int[] supplyPinReportResult(String pin) {
-        return supplyPinReportResultForSubscriber(getDefaultSubscription(), pin);
-    }
-
     public int[] supplyPinReportResultForSubscriber(int subId, String pin) {
         enforceModifyPermission();
 
@@ -1515,11 +1829,6 @@
         }
     }
 
-    /** {@hide} */
-    public int[] supplyPukReportResult(String puk, String pin) {
-        return supplyPukReportResultForSubscriber(getDefaultSubscription(), puk, pin);
-    }
-
     public int[] supplyPukReportResultForSubscriber(int subId, String puk, String pin) {
         enforceModifyPermission();
 
@@ -1652,15 +1961,30 @@
         }
     }
 
+    @Deprecated
     @Override
     public boolean isRadioOn(String callingPackage) {
-        return isRadioOnForSubscriber(getDefaultSubscription(), callingPackage);
+        return isRadioOnWithFeature(callingPackage, null);
+    }
+
+
+    @Override
+    public boolean isRadioOnWithFeature(String callingPackage, String callingFeatureId) {
+        return isRadioOnForSubscriberWithFeature(getDefaultSubscription(), callingPackage,
+                callingFeatureId);
+    }
+
+    @Deprecated
+    @Override
+    public boolean isRadioOnForSubscriber(int subId, String callingPackage) {
+        return isRadioOnForSubscriberWithFeature(subId, callingPackage, null);
     }
 
     @Override
-    public boolean isRadioOnForSubscriber(int subId, String callingPackage) {
+    public boolean isRadioOnForSubscriberWithFeature(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "isRadioOnForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId, "isRadioOnForSubscriber")) {
             return false;
         }
 
@@ -1727,6 +2051,7 @@
     }
 
     public boolean needMobileRadioShutdown() {
+        enforceReadPrivilegedPermission("needMobileRadioShutdown");
         /*
          * If any of the Radios are available, it will need to be
          * shutdown. So return true if any Radio is available.
@@ -1946,7 +2271,7 @@
     }
 
     @Override
-    public Bundle getCellLocation(String callingPackage) {
+    public CellIdentity getCellLocation(String callingPackage, String callingFeatureId) {
         mApp.getSystemService(AppOpsManager.class)
                 .checkPackage(Binder.getCallingUid(), callingPackage);
 
@@ -1954,6 +2279,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("getCellLocation")
@@ -1964,18 +2290,16 @@
             case DENIED_HARD:
                 throw new SecurityException("Not allowed to access cell location");
             case DENIED_SOFT:
-                return new Bundle();
+                return (getDefaultPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA)
+                        ? new CellIdentityCdma() : new CellIdentityGsm();
         }
 
         WorkSource workSource = getWorkSource(Binder.getCallingUid());
         final long identity = Binder.clearCallingIdentity();
         try {
             if (DBG_LOC) log("getCellLocation: is active user");
-            Bundle data = new Bundle();
             int subId = mSubscriptionController.getDefaultDataSubId();
-            CellLocation cl = (CellLocation) sendRequest(CMD_GET_CELL_LOCATION, workSource, subId);
-            cl.fillInNotifierBundle(data);
-            return data;
+            return (CellIdentity) sendRequest(CMD_GET_CELL_LOCATION, workSource, subId);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -1995,7 +2319,8 @@
             // Todo: fix this when we can get the actual cellular network info when the device
             // is on IWLAN.
             if (TelephonyManager.NETWORK_TYPE_IWLAN
-                    == getVoiceNetworkTypeForSubscriber(subId, mApp.getPackageName())) {
+                    == getVoiceNetworkTypeForSubscriber(subId, mApp.getPackageName(),
+                    mApp.getAttributionTag())) {
                 return "";
             }
             Phone phone = PhoneFactory.getPhone(phoneId);
@@ -2071,7 +2396,7 @@
     private int getTargetSdk(String packageName) {
         try {
             final ApplicationInfo ai = mApp.getPackageManager().getApplicationInfoAsUser(
-                    packageName, 0, UserHandle.getUserId(Binder.getCallingUid()));
+                    packageName, 0, UserHandle.getUserHandleForUid(Binder.getCallingUid()));
             if (ai != null) return ai.targetSdkVersion;
         } catch (PackageManager.NameNotFoundException unexpected) {
             loge("Failed to get package info for pkg="
@@ -2082,21 +2407,22 @@
 
     @Override
     @SuppressWarnings("unchecked")
-    public List<NeighboringCellInfo> getNeighboringCellInfo(String callingPackage) {
+    public List<NeighboringCellInfo> getNeighboringCellInfo(String callingPackage,
+            String callingFeatureId) {
         final int targetSdk = getTargetSdk(callingPackage);
         if (targetSdk >= android.os.Build.VERSION_CODES.Q) {
             throw new SecurityException(
                     "getNeighboringCellInfo() is unavailable to callers targeting Q+ SDK levels.");
         }
 
-        if (mAppOps.noteOp(AppOpsManager.OP_NEIGHBORING_CELLS, Binder.getCallingUid(),
+        if (mAppOps.noteOp(AppOpsManager.OPSTR_NEIGHBORING_CELLS, Binder.getCallingUid(),
                 callingPackage) != AppOpsManager.MODE_ALLOWED) {
             return null;
         }
 
         if (DBG_LOC) log("getNeighboringCellInfo: is active user");
 
-        List<CellInfo> info = getAllCellInfo(callingPackage);
+        List<CellInfo> info = getAllCellInfo(callingPackage, callingFeatureId);
         if (info == null) return null;
 
         List<NeighboringCellInfo> neighbors = new ArrayList<NeighboringCellInfo>();
@@ -2120,7 +2446,7 @@
     }
 
     @Override
-    public List<CellInfo> getAllCellInfo(String callingPackage) {
+    public List<CellInfo> getAllCellInfo(String callingPackage, String callingFeatureId) {
         mApp.getSystemService(AppOpsManager.class)
                 .checkPackage(Binder.getCallingUid(), callingPackage);
 
@@ -2128,6 +2454,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("getAllCellInfo")
@@ -2163,20 +2490,21 @@
     }
 
     @Override
-    public void requestCellInfoUpdate(int subId, ICellInfoCallback cb, String callingPackage) {
-        requestCellInfoUpdateInternal(
-                subId, cb, callingPackage, getWorkSource(Binder.getCallingUid()));
+    public void requestCellInfoUpdate(int subId, ICellInfoCallback cb, String callingPackage,
+            String callingFeatureId) {
+        requestCellInfoUpdateInternal(subId, cb, callingPackage, callingFeatureId,
+                getWorkSource(Binder.getCallingUid()));
     }
 
     @Override
-    public void requestCellInfoUpdateWithWorkSource(
-            int subId, ICellInfoCallback cb, String callingPackage, WorkSource workSource) {
+    public void requestCellInfoUpdateWithWorkSource(int subId, ICellInfoCallback cb,
+            String callingPackage, String callingFeatureId, WorkSource workSource) {
         enforceModifyPermission();
-        requestCellInfoUpdateInternal(subId, cb, callingPackage, workSource);
+        requestCellInfoUpdateInternal(subId, cb, callingPackage, callingFeatureId, workSource);
     }
 
-    private void requestCellInfoUpdateInternal(
-            int subId, ICellInfoCallback cb, String callingPackage, WorkSource workSource) {
+    private void requestCellInfoUpdateInternal(int subId, ICellInfoCallback cb,
+            String callingPackage, String callingFeatureId, WorkSource workSource) {
         mApp.getSystemService(AppOpsManager.class)
                 .checkPackage(Binder.getCallingUid(), callingPackage);
 
@@ -2184,6 +2512,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("requestCellInfoUpdate")
@@ -2222,14 +2551,14 @@
     }
 
     @Override
-    public String getImeiForSlot(int slotIndex, String callingPackage) {
+    public String getImeiForSlot(int slotIndex, String callingPackage, String callingFeatureId) {
         Phone phone = PhoneFactory.getPhone(slotIndex);
         if (phone == null) {
             return null;
         }
         int subId = phone.getSubId();
         if (!TelephonyPermissions.checkCallingOrSelfReadDeviceIdentifiers(mApp, subId,
-                callingPackage, "getImeiForSlot")) {
+                callingPackage, callingFeatureId, "getImeiForSlot")) {
             return null;
         }
 
@@ -2253,7 +2582,7 @@
     }
 
     @Override
-    public String getMeidForSlot(int slotIndex, String callingPackage) {
+    public String getMeidForSlot(int slotIndex, String callingPackage, String callingFeatureId) {
         Phone phone = PhoneFactory.getPhone(slotIndex);
         if (phone == null) {
             return null;
@@ -2261,7 +2590,7 @@
 
         int subId = phone.getSubId();
         if (!TelephonyPermissions.checkCallingOrSelfReadDeviceIdentifiers(mApp, subId,
-                callingPackage, "getMeidForSlot")) {
+                callingPackage, callingFeatureId, "getMeidForSlot")) {
             return null;
         }
 
@@ -2285,14 +2614,16 @@
     }
 
     @Override
-    public String getDeviceSoftwareVersionForSlot(int slotIndex, String callingPackage) {
+    public String getDeviceSoftwareVersionForSlot(int slotIndex, String callingPackage,
+            String callingFeatureId) {
         Phone phone = PhoneFactory.getPhone(slotIndex);
         if (phone == null) {
             return null;
         }
         int subId = phone.getSubId();
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getDeviceSoftwareVersionForSlot")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getDeviceSoftwareVersionForSlot")) {
             return null;
         }
 
@@ -2380,6 +2711,22 @@
     }
 
     /**
+     * Make sure the caller is system.
+     *
+     * @throws SecurityException if the caller is not system.
+     */
+    private void enforceSystemCaller() {
+        if (Binder.getCallingUid() != Process.SYSTEM_UID) {
+            throw new SecurityException("Caller must be system");
+        }
+    }
+
+    private void enforceActiveEmergencySessionPermission() {
+        mApp.enforceCallingOrSelfPermission(
+                android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION, null);
+    }
+
+    /**
      * Make sure the caller has the CALL_PHONE permission.
      *
      * @throws SecurityException if the caller does not have the required permission
@@ -2388,9 +2735,8 @@
         mApp.enforceCallingOrSelfPermission(android.Manifest.permission.CALL_PHONE, null);
     }
 
-    private void enforceConnectivityInternalPermission() {
-        mApp.enforceCallingOrSelfPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL,
-                "ConnectivityService");
+    private void enforceSettingsPermission() {
+        mApp.enforceCallingOrSelfPermission(android.Manifest.permission.NETWORK_SETTINGS, null);
     }
 
     private String createTelUrl(String number) {
@@ -2437,14 +2783,17 @@
      * Returns the CDMA ERI icon index to display
      */
     @Override
-    public int getCdmaEriIconIndex(String callingPackage) {
-        return getCdmaEriIconIndexForSubscriber(getDefaultSubscription(), callingPackage);
+    public int getCdmaEriIconIndex(String callingPackage, String callingFeatureId) {
+        return getCdmaEriIconIndexForSubscriber(getDefaultSubscription(), callingPackage,
+                callingFeatureId);
     }
 
     @Override
-    public int getCdmaEriIconIndexForSubscriber(int subId, String callingPackage) {
+    public int getCdmaEriIconIndexForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getCdmaEriIconIndexForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getCdmaEriIconIndexForSubscriber")) {
             return -1;
         }
 
@@ -2467,14 +2816,17 @@
      * 1 - FLASHING
      */
     @Override
-    public int getCdmaEriIconMode(String callingPackage) {
-        return getCdmaEriIconModeForSubscriber(getDefaultSubscription(), callingPackage);
+    public int getCdmaEriIconMode(String callingPackage, String callingFeatureId) {
+        return getCdmaEriIconModeForSubscriber(getDefaultSubscription(), callingPackage,
+                callingFeatureId);
     }
 
     @Override
-    public int getCdmaEriIconModeForSubscriber(int subId, String callingPackage) {
+    public int getCdmaEriIconModeForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getCdmaEriIconModeForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getCdmaEriIconModeForSubscriber")) {
             return -1;
         }
 
@@ -2495,14 +2847,17 @@
      * Returns the CDMA ERI text,
      */
     @Override
-    public String getCdmaEriText(String callingPackage) {
-        return getCdmaEriTextForSubscriber(getDefaultSubscription(), callingPackage);
+    public String getCdmaEriText(String callingPackage, String callingFeatureId) {
+        return getCdmaEriTextForSubscriber(getDefaultSubscription(), callingPackage,
+                callingFeatureId);
     }
 
     @Override
-    public String getCdmaEriTextForSubscriber(int subId, String callingPackage) {
+    public String getCdmaEriTextForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getCdmaEriIconTextForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getCdmaEriIconTextForSubscriber")) {
             return null;
         }
 
@@ -2603,7 +2958,8 @@
      */
     @Override
     public boolean setVoiceMailNumber(int subId, String alphaTag, String number) {
-        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(subId, "setVoiceMailNumber");
+        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(
+                mApp, subId, "setVoiceMailNumber");
 
         final long identity = Binder.clearCallingIdentity();
         try {
@@ -2618,7 +2974,8 @@
     @Override
     public Bundle getVisualVoicemailSettings(String callingPackage, int subId) {
         mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
-        String systemDialer = TelecomManager.from(mApp).getSystemDialerPackage();
+        TelecomManager tm = mApp.getSystemService(TelecomManager.class);
+        String systemDialer = tm.getSystemDialerPackage();
         if (!TextUtils.equals(callingPackage, systemDialer)) {
             throw new SecurityException("caller must be system dialer");
         }
@@ -2636,10 +2993,12 @@
     }
 
     @Override
-    public String getVisualVoicemailPackageName(String callingPackage, int subId) {
+    public String getVisualVoicemailPackageName(String callingPackage, String callingFeatureId,
+            int subId) {
         mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getVisualVoicemailPackageName")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getVisualVoicemailPackageName")) {
             return null;
         }
 
@@ -2751,7 +3110,7 @@
             if (phone != null) {
                 phone.setDataActivationState(activationState);
             } else {
-                loge("setVoiceActivationState fails with invalid subId: " + subId);
+                loge("setDataActivationState fails with invalid subId: " + subId);
             }
         } finally {
             Binder.restoreCallingIdentity(identity);
@@ -2802,9 +3161,11 @@
      * Returns the unread count of voicemails for a subId
      */
     @Override
-    public int getVoiceMessageCountForSubscriber(int subId, String callingPackage) {
+    public int getVoiceMessageCountForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getVoiceMessageCountForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getVoiceMessageCountForSubscriber")) {
             return 0;
         }
         final long identity = Binder.clearCallingIdentity();
@@ -2844,10 +3205,10 @@
     public void sendDialerSpecialCode(String callingPackage, String inputCode) {
         final Phone defaultPhone = getDefaultPhone();
         mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
-        String defaultDialer = TelecomManager.from(defaultPhone.getContext())
-                .getDefaultDialerPackage();
+        TelecomManager tm = defaultPhone.getContext().getSystemService(TelecomManager.class);
+        String defaultDialer = tm.getDefaultDialerPackage();
         if (!TextUtils.equals(callingPackage, defaultDialer)) {
-            TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(
+            TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(mApp,
                     getDefaultSubscription(), "sendDialerSpecialCode");
         }
 
@@ -2861,11 +3222,18 @@
 
     @Override
     public int getNetworkSelectionMode(int subId) {
-        if (!isActiveSubscription(subId)) {
-            return TelephonyManager.NETWORK_SELECTION_MODE_UNKNOWN;
+        TelephonyPermissions
+                    .enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                    mApp, subId, "getNetworkSelectionMode");
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            if (!isActiveSubscription(subId)) {
+                return TelephonyManager.NETWORK_SELECTION_MODE_UNKNOWN;
+            }
+            return (int) sendRequest(CMD_GET_NETWORK_SELECTION_MODE, null /* argument */, subId);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
         }
-
-        return (int) sendRequest(CMD_GET_NETWORK_SELECTION_MODE, null /* argument */, subId);
     }
 
     @Override
@@ -2884,73 +3252,181 @@
         return false;
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     * @param c The callback that will be used to send the result.
+     */
     @Override
     public void registerImsRegistrationCallback(int subId, IImsRegistrationCallback c)
             throws RemoteException {
-        enforceReadPrivilegedPermission("registerImsRegistrationCallback");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "registerImsRegistrationCallback");
+
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS not available on device.");
+        }
         final long token = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
                     .addRegistrationCallbackForSubscription(c, subId);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(token);
         }
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     * @param c The callback that will be used to send the result.
+     */
     @Override
     public void unregisterImsRegistrationCallback(int subId, IImsRegistrationCallback c) {
-        enforceReadPrivilegedPermission("unregisterImsRegistrationCallback");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "unregisterImsRegistrationCallback");
         if (!SubscriptionManager.isValidSubscriptionId(subId)) {
             throw new IllegalArgumentException("Invalid Subscription ID: " + subId);
         }
-        Binder.withCleanCallingIdentity(() -> {
-            try {
-                // TODO: Refactor to remove ImsManager dependence and query through ImsPhone.
-                ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
-                        .removeRegistrationCallbackForSubscription(c, subId);
-            } catch (IllegalArgumentException e) {
-                Log.i(LOG_TAG, "unregisterImsRegistrationCallback: " + subId
-                        + "is inactive, ignoring unregister.");
-                // If the subscription is no longer active, just return, since the callback
-                // will already have been removed internally.
-            }
-        });
+        final long token = Binder.clearCallingIdentity();
+        try {
+            // TODO: Refactor to remove ImsManager dependence and query through ImsPhone.
+            ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
+                    .removeRegistrationCallbackForSubscription(c, subId);
+        } catch (ImsException e) {
+            Log.i(LOG_TAG, "unregisterImsRegistrationCallback: " + subId
+                    + "is inactive, ignoring unregister.");
+            // If the subscription is no longer active, just return, since the callback
+            // will already have been removed internally.
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
     }
 
+    /**
+     * Get the IMS service registration state for the MmTelFeature associated with this sub id.
+     */
+    @Override
+    public void getImsMmTelRegistrationState(int subId, IIntegerConsumer consumer) {
+        enforceReadPrivilegedPermission("getImsMmTelRegistrationState");
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS not available on device.");
+        }
+        final long token = Binder.clearCallingIdentity();
+        try {
+            Phone phone = getPhone(subId);
+            if (phone == null) {
+                Log.w(LOG_TAG, "getImsMmTelRegistrationState: called with an invalid subscription '"
+                        + subId + "'");
+                throw new ServiceSpecificException(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION);
+            }
+            phone.getImsRegistrationState(regState -> {
+                try {
+                    consumer.accept((regState == null)
+                            ? RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED : regState);
+                } catch (RemoteException e) {
+                    // Ignore if the remote process is no longer available to call back.
+                    Log.w(LOG_TAG, "getImsMmTelRegistrationState: callback not available.");
+                }
+            });
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Get the transport type for the IMS service registration state.
+     */
+    @Override
+    public void getImsMmTelRegistrationTransportType(int subId, IIntegerConsumer consumer) {
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "getImsMmTelRegistrationTransportType");
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS not available on device.");
+        }
+        final long token = Binder.clearCallingIdentity();
+        try {
+            Phone phone = getPhone(subId);
+            if (phone == null) {
+                Log.w(LOG_TAG, "getImsMmTelRegistrationState: called with an invalid subscription '"
+                        + subId + "'");
+                throw new ServiceSpecificException(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION);
+            }
+            phone.getImsRegistrationTech(regTech -> {
+                // Convert registration tech from ImsRegistrationImplBase -> RegistrationManager
+                int regTechConverted = (regTech == null)
+                        ? ImsRegistrationImplBase.REGISTRATION_TECH_NONE : regTech;
+                regTechConverted = RegistrationManager.IMS_REG_TO_ACCESS_TYPE_MAP.get(
+                        regTechConverted);
+                try {
+                    consumer.accept(regTechConverted);
+                } catch (RemoteException e) {
+                    // Ignore if the remote process is no longer available to call back.
+                    Log.w(LOG_TAG, "getImsMmTelRegistrationState: callback not available.");
+                }
+            });
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     * @param c The callback that will be used to send the result.
+     */
     @Override
     public void registerMmTelCapabilityCallback(int subId, IImsCapabilityCallback c)
             throws RemoteException {
-        enforceReadPrivilegedPermission("registerMmTelCapabilityCallback");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "registerMmTelCapabilityCallback");
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS not available on device.");
+        }
         // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
         final long token = Binder.clearCallingIdentity();
         try {
             ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
                     .addCapabilitiesCallbackForSubscription(c, subId);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(token);
         }
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     * @param c The callback that will be used to send the result.
+     */
     @Override
     public void unregisterMmTelCapabilityCallback(int subId, IImsCapabilityCallback c) {
-        enforceReadPrivilegedPermission("unregisterMmTelCapabilityCallback");
-
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "unregisterMmTelCapabilityCallback");
         if (!SubscriptionManager.isValidSubscriptionId(subId)) {
             throw new IllegalArgumentException("Invalid Subscription ID: " + subId);
         }
-        Binder.withCleanCallingIdentity(() -> {
-            try {
-                // TODO: Refactor to remove ImsManager dependence and query through ImsPhone.
-                ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
+
+        final long token = Binder.clearCallingIdentity();
+        try {
+            // TODO: Refactor to remove ImsManager dependence and query through ImsPhone.
+            ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
                         .removeCapabilitiesCallbackForSubscription(c, subId);
-            } catch (IllegalArgumentException e) {
-                Log.i(LOG_TAG, "unregisterMmTelCapabilityCallback: " + subId
-                        + "is inactive, ignoring unregister.");
-                // If the subscription is no longer active, just return, since the callback
-                // will already have been removed internally.
-            }
-        });
+        } catch (ImsException e) {
+            Log.i(LOG_TAG, "unregisterMmTelCapabilityCallback: " + subId
+                     + "is inactive, ignoring unregister.");
+             // If the subscription is no longer active, just return, since the callback
+             // will already have been removed internally.
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
     }
 
     @Override
@@ -2961,10 +3437,10 @@
         try {
             return ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).queryMmTelCapability(capability, regTech);
-        } catch (ImsException e) {
+        } catch (com.android.ims.ImsException e) {
             Log.w(LOG_TAG, "IMS isCapable - service unavailable: " + e.getMessage());
             return false;
-        } catch (IllegalArgumentException e) {
+        } catch (ImsException e) {
             Log.i(LOG_TAG, "isCapable: " + subId + " is inactive, returning false.");
             return false;
         } finally {
@@ -2980,19 +3456,68 @@
             Phone phone = getPhone(subId);
             if (phone == null) return false;
             return phone.isImsCapabilityAvailable(capability, regTech);
+        } catch (com.android.ims.ImsException e) {
+            Log.w(LOG_TAG, "IMS isAvailable - service unavailable: " + e.getMessage());
+            return false;
         } finally {
             Binder.restoreCallingIdentity(token);
         }
     }
 
+    /**
+     * Determines if the MmTel feature capability is supported by the carrier configuration for this
+     * subscription.
+     * @param subId The subscription to use to check the configuration.
+     * @param callback The callback that will be used to send the result.
+     * @param capability The MmTelFeature capability that will be used to send the result.
+     * @param transportType The transport type of the MmTelFeature capability.
+     */
+    @Override
+    public void isMmTelCapabilitySupported(int subId, IIntegerConsumer callback, int capability,
+            int transportType) {
+        enforceReadPrivilegedPermission("isMmTelCapabilitySupported");
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS not available on device.");
+        }
+        final long token = Binder.clearCallingIdentity();
+        try {
+            int slotId = getSlotIndex(subId);
+            if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
+                Log.w(LOG_TAG, "isMmTelCapabilitySupported: called with an inactive subscription '"
+                        + subId + "'");
+                throw new ServiceSpecificException(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION);
+            }
+            ImsManager.getInstance(mApp, slotId).isSupported(capability,
+                    transportType, aBoolean -> {
+                        try {
+                            callback.accept((aBoolean == null) ? 0 : (aBoolean ? 1 : 0));
+                        } catch (RemoteException e) {
+                            Log.w(LOG_TAG, "isMmTelCapabilitySupported: remote caller is not "
+                                    + "running. Ignore");
+                        }
+                    });
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     */
     @Override
     public boolean isAdvancedCallingSettingEnabled(int subId) {
-        enforceReadPrivilegedPermission("enforceReadPrivilegedPermission");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "isAdvancedCallingSettingEnabled");
+
         // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
         final long token = Binder.clearCallingIdentity();
         try {
             return ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).isEnhanced4gLteModeSettingEnabledByUser();
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(token);
         }
@@ -3007,19 +3532,27 @@
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).setEnhanced4gLteModeSetting(isEnabled);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     */
     @Override
     public boolean isVtSettingEnabled(int subId) {
-        enforceReadPrivilegedPermission("isVtSettingEnabled");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "isVtSettingEnabled");
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
-            return ImsManager.getInstance(mApp,
-                    getSlotIndexOrException(subId)).isVtEnabledByUser();
+            return ImsManager.getInstance(mApp, getSlotIndexOrException(subId)).isVtEnabledByUser();
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3033,19 +3566,28 @@
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp, getSlotIndexOrException(subId)).setVtSetting(isEnabled);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     */
     @Override
     public boolean isVoWiFiSettingEnabled(int subId) {
-        enforceReadPrivilegedPermission("isVoWiFiSettingEnabled");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "isVoWiFiSettingEnabled");
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             return ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).isWfcEnabledByUser();
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3059,19 +3601,28 @@
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp, getSlotIndexOrException(subId)).setWfcSetting(isEnabled);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     */
     @Override
     public boolean isVoWiFiRoamingSettingEnabled(int subId) {
-        enforceReadPrivilegedPermission("isVoWiFiRoamingSettingEnabled");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "isVoWiFiRoamingSettingEnabled");
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             return ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).isWfcRoamingEnabledByUser();
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3086,6 +3637,8 @@
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).setWfcRoamingSetting(isEnabled);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3100,19 +3653,28 @@
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).setWfcNonPersistent(isCapable, mode);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     */
     @Override
     public int getVoWiFiModeSetting(int subId) {
-        enforceReadPrivilegedPermission("getVoWiFiModeSetting");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "getVoWiFiModeSetting");
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             return ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).getWfcMode(false /*isRoaming*/);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3127,6 +3689,8 @@
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).setWfcMode(mode, false /*isRoaming*/);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3140,6 +3704,8 @@
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             return ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).getWfcMode(true /*isRoaming*/);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3154,6 +3720,8 @@
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).setWfcMode(mode, true /*isRoaming*/);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3166,21 +3734,29 @@
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
-            ImsManager.getInstance(mApp,
-                    getSlotIndexOrException(subId)).setRttEnabled(isEnabled);
+            ImsManager.getInstance(mApp, getSlotIndexOrException(subId)).setRttEnabled(isEnabled);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     */
     @Override
     public boolean isTtyOverVolteEnabled(int subId) {
-        enforceReadPrivilegedPermission("isTtyOverVolteEnabled");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "isTtyOverVolteEnabled");
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             return ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).isTtyOnVoLteCapable();
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3191,9 +3767,15 @@
         enforceReadPrivilegedPermission("registerImsProvisioningChangedCallback");
         final long identity = Binder.clearCallingIdentity();
         try {
+            if (!isImsAvailableOnDevice()) {
+                throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                        "IMS not available on device.");
+            }
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
                     .addProvisioningCallbackForSubscription(callback, subId);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3210,7 +3792,7 @@
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
                     .removeProvisioningCallbackForSubscription(callback, subId);
-        } catch (IllegalArgumentException e) {
+        } catch (ImsException e) {
             Log.i(LOG_TAG, "unregisterImsProvisioningChangedCallback: " + subId
                     + "is inactive, ignoring unregister.");
             // If the subscription is no longer active, just return, since the callback will already
@@ -3220,6 +3802,91 @@
         }
     }
 
+
+    private void checkModifyPhoneStatePermission(int subId, String message) {
+        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp, subId,
+                message);
+    }
+
+    private boolean isImsProvisioningRequired(int subId, int capability,
+            boolean isMmtelCapability) {
+        Phone phone = getPhone(subId);
+        if (phone == null) {
+            loge("phone instance null for subid " + subId);
+            return false;
+        }
+        if (isMmtelCapability) {
+            if (!doesImsCapabilityRequireProvisioning(phone.getContext(), subId, capability)) {
+                return false;
+            }
+        } else {
+            if (!doesRcsCapabilityRequireProvisioning(phone.getContext(), subId, capability)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public void setRcsProvisioningStatusForCapability(int subId, int capability,
+            boolean isProvisioned) {
+        checkModifyPhoneStatePermission(subId, "setRcsProvisioningStatusForCapability");
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
+            if (!isImsProvisioningRequired(subId, capability, false)) {
+                return;
+            }
+
+            // this capability requires provisioning, route to the correct API.
+            ImsManager ims = ImsManager.getInstance(mApp, getSlotIndex(subId));
+            switch (capability) {
+                case RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_OPTIONS_UCE:
+                case RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE:
+                    ims.setEabProvisioned(isProvisioned);
+                    break;
+                default: {
+                    throw new IllegalArgumentException("Tried to set provisioning for "
+                            + "rcs capability '" + capability + "', which does not require "
+                            + "provisioning.");
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+
+    }
+
+
+    @Override
+    public boolean getRcsProvisioningStatusForCapability(int subId, int capability) {
+        enforceReadPrivilegedPermission("getRcsProvisioningStatusForCapability");
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
+            if (!isImsProvisioningRequired(subId, capability, false)) {
+                return true;
+            }
+
+            ImsManager ims = ImsManager.getInstance(mApp, getSlotIndex(subId));
+            switch (capability) {
+                case RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_OPTIONS_UCE:
+                case RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE:
+                    return ims.isEabProvisionedOnDevice();
+
+                default: {
+                    throw new IllegalArgumentException("Tried to get rcs provisioning for "
+                            + "capability '" + capability + "', which does not require "
+                            + "provisioning.");
+                }
+            }
+
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
     @Override
     public void setImsProvisioningStatusForCapability(int subId, int capability, int tech,
             boolean isProvisioned) {
@@ -3227,18 +3894,11 @@
                 && tech != ImsRegistrationImplBase.REGISTRATION_TECH_LTE) {
             throw new IllegalArgumentException("Registration technology '" + tech + "' is invalid");
         }
-        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp, subId,
-                "setProvisioningStatusForCapability");
+        checkModifyPhoneStatePermission(subId, "setImsProvisioningStatusForCapability");
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
-            Phone phone = getPhone(subId);
-            if (phone == null) {
-                loge("setImsProvisioningStatusForCapability: phone instance null for subid "
-                        + subId);
-                return;
-            }
-            if (!doesImsCapabilityRequireProvisioning(phone.getContext(), subId, capability)) {
+            if (!isImsProvisioningRequired(subId, capability, true)) {
                 return;
             }
 
@@ -3269,15 +3929,16 @@
                     cacheMmTelCapabilityProvisioning(subId, capability, tech, isProvisioned);
                     try {
                         ims.changeMmTelCapability(capability, tech, isProvisioned);
-                    } catch (ImsException e) {
+                    } catch (com.android.ims.ImsException e) {
                         loge("setImsProvisioningStatusForCapability: couldn't change UT capability"
                                 + ", Exception" + e.getMessage());
                     }
                     break;
                 }
                 default: {
-                    throw new IllegalArgumentException("Tried to set provisioning for capability '"
-                            + capability + "', which does not require provisioning.");
+                    throw new IllegalArgumentException("Tried to set provisioning for "
+                            + "MmTel capability '" + capability + "', which does not require "
+                            + "provisioning. ");
                 }
             }
 
@@ -3296,16 +3957,7 @@
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
-            Phone phone = getPhone(subId);
-            if (phone == null) {
-                loge("getImsProvisioningStatusForCapability: phone instance null for subid "
-                        + subId);
-                // We will fail with "true" as the provisioning status because this is the default
-                // if we do not require provisioning.
-                return true;
-            }
-
-            if (!doesImsCapabilityRequireProvisioning(phone.getContext(), subId, capability)) {
+            if (!isImsProvisioningRequired(subId, capability, true)) {
                 return true;
             }
 
@@ -3331,8 +3983,9 @@
                     return isMmTelCapabilityProvisionedInCache(subId, capability, tech);
                 }
                 default: {
-                    throw new IllegalArgumentException("Tried to get provisioning for capability '"
-                            + capability + "', which does not require provisioning.");
+                    throw new IllegalArgumentException(
+                            "Tried to get provisioning for MmTel capability '" + capability
+                                    + "', which does not require provisioning.");
                 }
             }
 
@@ -3413,10 +4066,7 @@
         CarrierConfigManager configManager = new CarrierConfigManager(context);
         PersistableBundle c = configManager.getConfigForSubId(subId);
         boolean requireUtProvisioning = c.getBoolean(
-                // By default, this config is true (even if there is no SIM). We also check to make
-                // sure the subscription needs provisioning here, so we do not need to check for
-                // the no-SIM case, where we would normally shortcut this to false.
-                CarrierConfigManager.KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL, true)
+                CarrierConfigManager.KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL, false)
                 && c.getBoolean(CarrierConfigManager.KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL,
                 false);
         boolean requireVoiceVtProvisioning = c.getBoolean(
@@ -3444,6 +4094,29 @@
         return false;
     }
 
+    private boolean doesRcsCapabilityRequireProvisioning(Context context, int subId,
+            int capability) {
+        CarrierConfigManager configManager = new CarrierConfigManager(context);
+        PersistableBundle c = configManager.getConfigForSubId(subId);
+
+        boolean requireRcsProvisioning = c.getBoolean(
+                CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL, false);
+
+        // First check to make sure that the capability requires provisioning.
+        switch (capability) {
+            case RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE:
+                // intentional fallthrough
+            case RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_OPTIONS_UCE: {
+                if (requireRcsProvisioning) {
+                    // OPTION or PRESENCE requires provisioning
+                    return true;
+                }
+                break;
+            }
+        }
+        return false;
+    }
+
     @Override
     public int getImsProvisioningInt(int subId, int key) {
         if (!SubscriptionManager.isValidSubscriptionId(subId)) {
@@ -3460,7 +4133,7 @@
                 return ImsConfigImplBase.CONFIG_RESULT_UNKNOWN;
             }
             return ImsManager.getInstance(mApp, slotId).getConfigInterface().getConfigInt(key);
-        } catch (ImsException e) {
+        } catch (com.android.ims.ImsException e) {
             Log.w(LOG_TAG, "getImsProvisioningInt: ImsService is not available for subscription '"
                     + subId + "' for key:" + key);
             return ImsConfigImplBase.CONFIG_RESULT_UNKNOWN;
@@ -3485,7 +4158,7 @@
                 return ProvisioningManager.STRING_QUERY_RESULT_ERROR_GENERIC;
             }
             return ImsManager.getInstance(mApp, slotId).getConfigInterface().getConfigString(key);
-        } catch (ImsException e) {
+        } catch (com.android.ims.ImsException e) {
             Log.w(LOG_TAG, "getImsProvisioningString: ImsService is not available for sub '"
                     + subId + "' for key:" + key);
             return ProvisioningManager.STRING_QUERY_RESULT_ERROR_NOT_READY;
@@ -3511,7 +4184,7 @@
                 return ImsConfigImplBase.CONFIG_RESULT_FAILED;
             }
             return ImsManager.getInstance(mApp, slotId).getConfigInterface().setConfig(key, value);
-        } catch (ImsException e) {
+        } catch (com.android.ims.ImsException e) {
             Log.w(LOG_TAG, "setImsProvisioningInt: ImsService unavailable for sub '" + subId
                     + "' for key:" + key);
             return ImsConfigImplBase.CONFIG_RESULT_FAILED;
@@ -3537,7 +4210,7 @@
                 return ImsConfigImplBase.CONFIG_RESULT_FAILED;
             }
             return ImsManager.getInstance(mApp, slotId).getConfigInterface().setConfig(key, value);
-        } catch (ImsException e) {
+        } catch (com.android.ims.ImsException e) {
             Log.w(LOG_TAG, "setImsProvisioningString: ImsService unavailable for sub '" + subId
                     + "' for key:" + key);
             return ImsConfigImplBase.CONFIG_RESULT_FAILED;
@@ -3546,10 +4219,11 @@
         }
     }
 
-    private int getSlotIndexOrException(int subId) throws IllegalArgumentException {
+    private int getSlotIndexOrException(int subId) throws ImsException {
         int slotId = SubscriptionManager.getSlotIndex(subId);
         if (!SubscriptionManager.isValidSlotIndex(slotId)) {
-            throw new IllegalArgumentException("Invalid Subscription Id, subId=" + subId);
+            throw new ImsException("Invalid Subscription Id, subId=" + subId,
+                    ImsException.CODE_ERROR_INVALID_SUBSCRIPTION);
         }
         return slotId;
     }
@@ -3566,10 +4240,15 @@
      * Returns the data network type for a subId; does not throw SecurityException.
      */
     @Override
-    public int getNetworkTypeForSubscriber(int subId, String callingPackage) {
-        if (getTargetSdk(callingPackage) >= android.os.Build.VERSION_CODES.Q
+    public int getNetworkTypeForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
+        final int targetSdk = getTargetSdk(callingPackage);
+        if (targetSdk > android.os.Build.VERSION_CODES.Q) {
+            return getDataNetworkTypeForSubscriber(subId, callingPackage, callingFeatureId);
+        } else if (targetSdk == android.os.Build.VERSION_CODES.Q
                 && !TelephonyPermissions.checkCallingOrSelfReadPhoneStateNoThrow(
-                        mApp, subId, callingPackage, "getNetworkTypeForSubscriber")) {
+                        mApp, subId, callingPackage, callingFeatureId,
+                "getNetworkTypeForSubscriber")) {
             return TelephonyManager.NETWORK_TYPE_UNKNOWN;
         }
 
@@ -3590,17 +4269,20 @@
      * Returns the data network type
      */
     @Override
-    public int getDataNetworkType(String callingPackage) {
-        return getDataNetworkTypeForSubscriber(getDefaultSubscription(), callingPackage);
+    public int getDataNetworkType(String callingPackage, String callingFeatureId) {
+        return getDataNetworkTypeForSubscriber(getDefaultSubscription(), callingPackage,
+                callingFeatureId);
     }
 
     /**
      * Returns the data network type for a subId
      */
     @Override
-    public int getDataNetworkTypeForSubscriber(int subId, String callingPackage) {
+    public int getDataNetworkTypeForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getDataNetworkTypeForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getDataNetworkTypeForSubscriber")) {
             return TelephonyManager.NETWORK_TYPE_UNKNOWN;
         }
 
@@ -3621,9 +4303,11 @@
      * Returns the Voice network type for a subId
      */
     @Override
-    public int getVoiceNetworkTypeForSubscriber(int subId, String callingPackage) {
+    public int getVoiceNetworkTypeForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getDataNetworkTypeForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getDataNetworkTypeForSubscriber")) {
             return TelephonyManager.NETWORK_TYPE_UNKNOWN;
         }
 
@@ -3677,14 +4361,17 @@
      * or {@link Phone#LTE_ON_CDMA_TRUE}
      */
     @Override
-    public int getLteOnCdmaMode(String callingPackage) {
-        return getLteOnCdmaModeForSubscriber(getDefaultSubscription(), callingPackage);
+    public int getLteOnCdmaMode(String callingPackage, String callingFeatureId) {
+        return getLteOnCdmaModeForSubscriber(getDefaultSubscription(), callingPackage,
+                callingFeatureId);
     }
 
     @Override
-    public int getLteOnCdmaModeForSubscriber(int subId, String callingPackage) {
-        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getLteOnCdmaModeForSubscriber")) {
+    public int getLteOnCdmaModeForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
+        try {
+            enforceReadPrivilegedPermission("getLteOnCdmaModeForSubscriber");
+        } catch (SecurityException e) {
             return PhoneConstants.LTE_ON_CDMA_UNKNOWN;
         }
 
@@ -4008,9 +4695,10 @@
      * Get the forbidden PLMN List from the given app type (ex APPTYPE_USIM)
      * on a particular subscription
      */
-    public String[] getForbiddenPlmns(int subId, int appType, String callingPackage) {
+    public String[] getForbiddenPlmns(int subId, int appType, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getForbiddenPlmns")) {
+                mApp, subId, callingPackage, callingFeatureId, "getForbiddenPlmns")) {
             return null;
         }
 
@@ -4026,7 +4714,7 @@
             if (response instanceof String[]) {
                 return (String[]) response;
             }
-            // Response is an Exception of some kind,
+            // Response is an Exception of some kind
             // which is signalled to the user as a NULL retval
             return null;
         } finally {
@@ -4034,6 +4722,48 @@
         }
     }
 
+    /**
+     * Set the forbidden PLMN list from the given app type (ex APPTYPE_USIM) on a particular
+     * subscription.
+     *
+     * @param subId the id of the subscription.
+     * @param appType the uicc app type, must be USIM or SIM.
+     * @param fplmns the Forbiden plmns list that needed to be written to the SIM.
+     * @param callingPackage the op Package name.
+     * @param callingFeatureId the feature in the package.
+     * @return number of fplmns that is successfully written to the SIM.
+     */
+    public int setForbiddenPlmns(int subId, int appType, List<String> fplmns, String callingPackage,
+            String callingFeatureId) {
+        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, subId, callingPackage,
+                callingFeatureId, "setForbiddenPlmns")) {
+            if (DBG) logv("no permissions for setForbiddenplmns");
+            throw new IllegalStateException("No Permissions for setForbiddenPlmns");
+        }
+        if (appType != TelephonyManager.APPTYPE_USIM && appType != TelephonyManager.APPTYPE_SIM) {
+            loge("setForbiddenPlmnList(): App Type must be USIM or SIM");
+            throw new IllegalArgumentException("Invalid appType: App Type must be USIM or SIM");
+        }
+        if (fplmns == null) {
+            throw new IllegalArgumentException("Fplmn List provided is null");
+        }
+        for (String fplmn : fplmns) {
+            if (!CellIdentity.isValidPlmn(fplmn)) {
+                throw new IllegalArgumentException("Invalid fplmn provided: " + fplmn);
+            }
+        }
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            Object response = sendRequest(
+                    CMD_SET_FORBIDDEN_PLMNS,
+                    new Pair<Integer, List<String>>(new Integer(appType), fplmns),
+                    subId);
+            return (int) response;
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
     @Override
     public String sendEnvelopeWithStatus(int subId, String content) {
         TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
@@ -4182,10 +4912,11 @@
         return false;
     }
 
-    public String[] getPcscfAddress(String apnType, String callingPackage) {
+    public String[] getPcscfAddress(String apnType, String callingPackage,
+            String callingFeatureId) {
         final Phone defaultPhone = getDefaultPhone();
-        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, defaultPhone.getSubId(), callingPackage, "getPcscfAddress")) {
+        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, defaultPhone.getSubId(),
+                callingPackage, callingFeatureId, "getPcscfAddress")) {
             return new String[0];
         }
 
@@ -4198,6 +4929,27 @@
     }
 
     /**
+     * Toggle IMS disable and enable for the framework to reset it. See {@link #enableIms(int)} and
+     * {@link #disableIms(int)}.
+     * @param slotIndex device slot.
+     */
+    public void resetIms(int slotIndex) {
+        enforceModifyPermission();
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            if (mImsResolver == null) {
+                // may happen if the does not support IMS.
+                return;
+            }
+            mImsResolver.disableIms(slotIndex);
+            mImsResolver.enableIms(slotIndex);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
      * Enables IMS for the framework. This will trigger IMS registration and ImsFeature capability
      * status updates, if not already enabled.
      */
@@ -4206,12 +4958,11 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return;
             }
-            resolver.enableIms(slotId);
+            mImsResolver.enableIms(slotId);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4226,12 +4977,11 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return;
             }
-            resolver.disableIms(slotId);
+            mImsResolver.disableIms(slotId);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4248,12 +4998,11 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return null;
             }
-            return resolver.getMmTelFeatureAndListen(slotId, callback);
+            return mImsResolver.getMmTelFeatureAndListen(slotId, callback);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4270,12 +5019,11 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return null;
             }
-            return resolver.getRcsFeatureAndListen(slotId, callback);
+            return mImsResolver.getRcsFeatureAndListen(slotId, callback);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4290,12 +5038,11 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return null;
             }
-            return resolver.getImsRegistration(slotId, feature);
+            return mImsResolver.getImsRegistration(slotId, feature);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4310,12 +5057,11 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return null;
             }
-            return resolver.getImsConfig(slotId, feature);
+            return mImsResolver.getImsConfig(slotId, feature);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4324,61 +5070,104 @@
     /**
      * Sets the ImsService Package Name that Telephony will bind to.
      *
-     * @param slotId the slot ID that the ImsService should bind for.
-     * @param isCarrierImsService true if the ImsService is the carrier override, false if the
+     * @param slotIndex the slot ID that the ImsService should bind for.
+     * @param isCarrierService true if the ImsService is the carrier override, false if the
      *         ImsService is the device default ImsService.
-     * @param packageName The package name of the application that contains the ImsService to bind
-     *         to.
+     * @param featureTypes An integer array of feature types associated with a packageName.
+     * @param packageName The name of the package that the current configuration will be replaced
+     *                    with.
      * @return true if setting the ImsService to bind to succeeded, false if it did not.
-     * @hide
      */
-    public boolean setImsService(int slotId, boolean isCarrierImsService, String packageName) {
-        int[] subIds = SubscriptionManager.getSubId(slotId);
+    public boolean setBoundImsServiceOverride(int slotIndex, boolean isCarrierService,
+            int[] featureTypes, String packageName) {
+        int[] subIds = SubscriptionManager.getSubId(slotIndex);
+        TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "setBoundImsServiceOverride");
         TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp,
                 (subIds != null ? subIds[0] : SubscriptionManager.INVALID_SUBSCRIPTION_ID),
-                "setImsService");
+                "setBoundImsServiceOverride");
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return false;
             }
-            return resolver.overrideImsServiceConfiguration(slotId, isCarrierImsService,
-                    packageName);
+            Map<Integer, String> featureConfig = new HashMap<>();
+            for (int featureType : featureTypes) {
+                featureConfig.put(featureType, packageName);
+            }
+            return mImsResolver.overrideImsServiceConfiguration(slotIndex, isCarrierService,
+                    featureConfig);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
     /**
-     * Return the ImsService configuration.
+     * Return the package name of the currently bound ImsService.
      *
      * @param slotId The slot that the ImsService is associated with.
      * @param isCarrierImsService true, if the ImsService is a carrier override, false if it is
      *         the device default.
+     * @param featureType The feature associated with the queried configuration.
      * @return the package name of the ImsService configuration.
      */
-    public String getImsService(int slotId, boolean isCarrierImsService) {
+    public String getBoundImsServicePackage(int slotId, boolean isCarrierImsService,
+            @ImsFeature.FeatureType int featureType) {
         int[] subIds = SubscriptionManager.getSubId(slotId);
-        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp,
-                (subIds != null ? subIds[0] : SubscriptionManager.INVALID_SUBSCRIPTION_ID),
-                "getImsService");
+        TelephonyPermissions
+                .enforeceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
+                mApp, (subIds != null ? subIds[0] : SubscriptionManager.INVALID_SUBSCRIPTION_ID),
+                "getBoundImsServicePackage");
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return "";
             }
-            return resolver.getImsServiceConfiguration(slotId, isCarrierImsService);
+            // TODO: change API to query RCS separately.
+            return mImsResolver.getImsServiceConfiguration(slotId, isCarrierImsService,
+                    featureType);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
+    /**
+     * Get the MmTelFeature state associated with the requested subscription id.
+     * @param subId The subscription that the MmTelFeature is associated with.
+     * @param callback A callback with an integer containing the
+     * {@link android.telephony.ims.feature.ImsFeature.ImsState} associated with the MmTelFeature.
+     */
+    @Override
+    public void getImsMmTelFeatureState(int subId, IIntegerConsumer callback) {
+        enforceReadPrivilegedPermission("getImsMmTelFeatureState");
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS not available on device.");
+        }
+        final long token = Binder.clearCallingIdentity();
+        try {
+            int slotId = getSlotIndex(subId);
+            if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
+                Log.w(LOG_TAG, "getImsMmTelFeatureState: called with an inactive subscription '"
+                        + subId + "'");
+                throw new ServiceSpecificException(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION);
+            }
+            ImsManager.getInstance(mApp, slotId).getImsServiceState(anInteger -> {
+                try {
+                    callback.accept(anInteger == null ? ImsFeature.STATE_UNAVAILABLE : anInteger);
+                } catch (RemoteException e) {
+                    Log.w(LOG_TAG, "getImsMmTelFeatureState: remote caller is no longer running. "
+                            + "Ignore");
+                }
+            });
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
     public void setImsRegistrationState(boolean registered) {
         enforceModifyPermission();
 
@@ -4399,12 +5188,11 @@
         TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
                 mApp, subId, "setNetworkSelectionModeAutomatic");
 
-        if (!isActiveSubscription(subId)) {
-            return;
-        }
-
         final long identity = Binder.clearCallingIdentity();
         try {
+            if (!isActiveSubscription(subId)) {
+                return;
+            }
             if (DBG) log("setNetworkSelectionModeAutomatic: subId " + subId);
             sendRequest(CMD_SET_NETWORK_SELECTION_MODE_AUTOMATIC, null, subId);
         } finally {
@@ -4446,18 +5234,50 @@
             Binder.restoreCallingIdentity(identity);
         }
     }
+     /**
+     * Get the manual network selection
+     *
+     * @param subId the id of the subscription.
+     *
+     * @return the previously saved user selected PLMN
+     */
+    @Override
+    public String getManualNetworkSelectionPlmn(int subId) {
+        TelephonyPermissions
+                    .enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                    mApp, subId, "getManualNetworkSelectionPlmn");
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            if (!isActiveSubscription(subId)) {
+                return "";
+            }
+
+            final Phone phone = getPhone(subId);
+            if (phone == null) {
+                return "";
+            }
+            OperatorInfo networkSelection = phone.getSavedNetworkSelection();
+            return TextUtils.isEmpty(networkSelection.getOperatorNumeric())
+                ? phone.getManualNetworkSelectionPlmn() : networkSelection.getOperatorNumeric();
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
 
     /**
      * Scans for available networks.
      */
     @Override
-    public CellNetworkScanResult getCellNetworkScanResults(int subId, String callingPackage) {
+    public CellNetworkScanResult getCellNetworkScanResults(int subId, String callingPackage,
+            String callingFeatureId) {
         TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
                 mApp, subId, "getCellNetworkScanResults");
         LocationAccessPolicy.LocationPermissionResult locationResult =
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("getCellNetworkScanResults")
@@ -4481,6 +5301,75 @@
     }
 
     /**
+     * Get the call forwarding info, given the call forwarding reason.
+     */
+    @Override
+    public CallForwardingInfo getCallForwarding(int subId, int callForwardingReason) {
+        enforceReadPrivilegedPermission("getCallForwarding");
+        long identity = Binder.clearCallingIdentity();
+        try {
+            if (DBG) {
+                log("getCallForwarding: subId " + subId
+                        + " callForwardingReason" + callForwardingReason);
+            }
+            return (CallForwardingInfo) sendRequest(
+                    CMD_GET_CALL_FORWARDING, callForwardingReason, subId);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
+     * Sets the voice call forwarding info including status (enable/disable), call forwarding
+     * reason, the number to forward, and the timeout before the forwarding is attempted.
+     */
+    @Override
+    public boolean setCallForwarding(int subId, CallForwardingInfo callForwardingInfo) {
+        enforceModifyPermission();
+        long identity = Binder.clearCallingIdentity();
+        try {
+            if (DBG) {
+                log("setCallForwarding: subId " + subId
+                        + " callForwardingInfo" + callForwardingInfo);
+            }
+            return (Boolean) sendRequest(CMD_SET_CALL_FORWARDING, callForwardingInfo, subId);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
+     * Get the call forwarding info, given the call forwarding reason.
+     */
+    @Override
+    public int getCallWaitingStatus(int subId) {
+        enforceReadPrivilegedPermission("getCallForwarding");
+        long identity = Binder.clearCallingIdentity();
+        try {
+            if (DBG) log("getCallWaitingStatus: subId " + subId);
+            return (Integer) sendRequest(CMD_GET_CALL_WAITING, null, subId);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
+     * Sets the voice call forwarding info including status (enable/disable), call forwarding
+     * reason, the number to forward, and the timeout before the forwarding is attempted.
+     */
+    @Override
+    public boolean setCallWaitingStatus(int subId, boolean isEnable) {
+        enforceModifyPermission();
+        long identity = Binder.clearCallingIdentity();
+        try {
+            if (DBG) log("setCallWaitingStatus: subId " + subId + " isEnable: " + isEnable);
+            return (Boolean) sendRequest(CMD_SET_CALL_WAITING, isEnable, subId);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
      * Starts a new network scan and returns the id of this scan.
      *
      * @param subId id of the subscription
@@ -4491,13 +5380,14 @@
      */
     @Override
     public int requestNetworkScan(int subId, NetworkScanRequest request, Messenger messenger,
-            IBinder binder, String callingPackage) {
+            IBinder binder, String callingPackage, String callingFeatureId) {
         TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
                 mApp, subId, "requestNetworkScan");
         LocationAccessPolicy.LocationPermissionResult locationResult =
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("requestNetworkScan")
@@ -4578,10 +5468,10 @@
      * @return the preferred network type, defined in RILConstants.java.
      */
     @Override
-    public int getCalculatedPreferredNetworkType(String callingPackage) {
+    public int getCalculatedPreferredNetworkType(String callingPackage, String callingFeatureId) {
         final Phone defaultPhone = getDefaultPhone();
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, defaultPhone.getSubId(),
-                callingPackage, "getCalculatedPreferredNetworkType")) {
+                callingPackage, callingFeatureId, "getCalculatedPreferredNetworkType")) {
             return RILConstants.PREFERRED_NETWORK_MODE;
         }
 
@@ -4632,21 +5522,81 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            if (DBG) log("setPreferredNetworkType: subId " + subId + " type " + networkType);
-            Boolean success = (Boolean) sendRequest(
-                    CMD_SET_PREFERRED_NETWORK_TYPE, networkType, subId);
-            if (DBG) log("setPreferredNetworkType: " + (success ? "ok" : "fail"));
-            if (success) {
-                Settings.Global.putInt(mApp.getContentResolver(),
-                        Settings.Global.PREFERRED_NETWORK_MODE + subId, networkType);
-            }
-            return success;
+            Settings.Global.putInt(mApp.getContentResolver(),
+                    Settings.Global.PREFERRED_NETWORK_MODE + subId, networkType);
+            return setPreferredNetworkTypesInternal(subId);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
     /**
+     * Get the allowed network types that store in the telephony provider.
+     *
+     * @param subId the id of the subscription.
+     * @return allowedNetworkTypes the allowed network types.
+     */
+    @Override
+    public long getAllowedNetworkTypes(int subId) {
+        TelephonyPermissions
+                .enforeceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
+                    mApp, subId, "getAllowedNetworkTypes");
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            return SubscriptionManager.getLongSubscriptionProperty(
+                    subId, SubscriptionManager.ALLOWED_NETWORK_TYPES, -1, mApp);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
+     * Set the allowed network types.
+     *
+     * @param subId the id of the subscription.
+     * @param allowedNetworkTypes the allowed network types.
+     * @return true on success; false on any failure.
+     */
+    @Override
+    public boolean setAllowedNetworkTypes(int subId, long allowedNetworkTypes) {
+        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
+                mApp, subId, "setAllowedNetworkTypes");
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            SubscriptionManager.setSubscriptionProperty(subId,
+                    SubscriptionManager.ALLOWED_NETWORK_TYPES,
+                    String.valueOf(allowedNetworkTypes));
+            return setPreferredNetworkTypesInternal(subId);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    private boolean setPreferredNetworkTypesInternal(int subId) {
+        long networkTypeBitMask = RadioAccessFamily.getRafFromNetworkType(
+                Settings.Global.getInt(mApp.getContentResolver(),
+                        Settings.Global.PREFERRED_NETWORK_MODE + subId,
+                        RILConstants.PREFERRED_NETWORK_MODE));
+        long allowedNetworkTypes = SubscriptionManager.getLongSubscriptionProperty(
+                subId, SubscriptionManager.ALLOWED_NETWORK_TYPES, -1, mApp);
+        int networkMode = RadioAccessFamily.getNetworkTypeFromRaf(
+                (int) (networkTypeBitMask & allowedNetworkTypes));
+
+        if (DBG) {
+            log("setPreferredNetworkTypesInternal: subId " + subId
+                    + " networkTypes " + networkTypeBitMask
+                    + " allowedNetworkTypes " + allowedNetworkTypes
+                    + " networkMode " + networkMode);
+        }
+
+        Boolean success = (Boolean) sendRequest(
+                CMD_SET_PREFERRED_NETWORK_TYPE, networkMode, subId);
+        if (DBG) log("setPreferredNetworkTypesInternal: " + (success ? "ok" : "fail"));
+        return success;
+    }
+
+    /**
      * Check whether DUN APN is required for tethering with subId.
      *
      * @param subId the id of the subscription to require tethering.
@@ -4654,7 +5604,7 @@
      * @hide
      */
     @Override
-    public boolean getTetherApnRequiredForSubscriber(int subId) {
+    public boolean isTetheringApnRequiredForSubscriber(int subId) {
         enforceModifyPermission();
         final long identity = Binder.clearCallingIdentity();
         final Phone phone = getPhone(subId);
@@ -4697,6 +5647,34 @@
     }
 
     /**
+     * Enable or disable always reporting signal strength changes from radio.
+     *
+     * @param isEnable {@code true} for enabling; {@code false} for disabling.
+     */
+    @Override
+    public void setAlwaysReportSignalStrength(int subId, boolean isEnable) {
+        enforceModifyPermission();
+        enforceSystemCaller();
+
+        final long identity = Binder.clearCallingIdentity();
+        final Phone phone = getPhone(subId);
+        try {
+            if (phone != null) {
+                if (DBG) {
+                    log("setAlwaysReportSignalStrength: subId=" + subId
+                            + " isEnable=" + isEnable);
+                }
+                phone.setAlwaysReportSignalStrength(isEnable);
+            } else {
+                loge("setAlwaysReportSignalStrength: no phone found for subId="
+                        + subId);
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
      * Get the user enabled state of Mobile Data.
      *
      * TODO: remove and use isUserDataEnabled.
@@ -4750,24 +5728,15 @@
     }
 
     /**
-     * Get whether mobile data is enabled.
+     * Checks if the device is capable of mobile data by considering whether whether the
+     * user has enabled mobile data, whether the carrier has enabled mobile data, and
+     * whether the network policy allows data connections.
      *
-     * Comparable to {@link #isUserDataEnabled(int)}, this considers all factors deciding
-     * whether mobile data is actually enabled.
-     *
-     * Accepts either ACCESS_NETWORK_STATE, MODIFY_PHONE_STATE or carrier privileges.
-     *
-     * @return {@code true} if data is enabled else {@code false}
+     * @return {@code true} if the overall data connection is capable; {@code false} if not.
      */
     @Override
     public boolean isDataEnabled(int subId) {
-        try {
-            mApp.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NETWORK_STATE,
-                    null);
-        } catch (Exception e) {
-            TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
-                    mApp, subId, "isDataEnabled");
-        }
+        enforceReadPrivilegedPermission("isDataEnabled");
 
         final long identity = Binder.clearCallingIdentity();
         try {
@@ -4853,20 +5822,21 @@
 
     @Override
     public int getCarrierPrivilegeStatusForUid(int subId, int uid) {
+        enforceReadPrivilegedPermission("getCarrierPrivilegeStatusForUid");
         final Phone phone = getPhone(subId);
         if (phone == null) {
-            loge("getCarrierPrivilegeStatus: Invalid subId");
+            loge("getCarrierPrivilegeStatusForUid: Invalid subId");
             return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
         }
         UiccProfile profile =
                 UiccController.getInstance().getUiccProfileForPhone(phone.getPhoneId());
         if (profile == null) {
-            loge("getCarrierPrivilegeStatus: No UICC");
+            loge("getCarrierPrivilegeStatusForUid: No UICC");
             return TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
         }
         return getCarrierPrivilegeStatusFromCarrierConfigRules(
-            profile.getCarrierPrivilegeStatusForUid(
-                phone.getContext().getPackageManager(), uid), phone);
+                profile.getCarrierPrivilegeStatusForUid(
+                        phone.getContext().getPackageManager(), uid), phone);
     }
 
     @Override
@@ -4917,7 +5887,7 @@
         }
         UiccCard card = UiccController.getInstance().getUiccCard(phoneId);
         if (card == null) {
-            loge("getCarrierPackageNamesForIntent: No UICC");
+            loge("getCarrierPackageNamesForIntentAndPhone: No UICC");
             return null ;
         }
         return card.getCarrierPackageNamesForIntent(mApp.getPackageManager(), intent);
@@ -4938,7 +5908,7 @@
                         PackageManager.MATCH_DISABLED_COMPONENTS
                             | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
                             | PackageManager.GET_SIGNING_CERTIFICATES,
-                            UserHandle.USER_SYSTEM);
+                            UserHandle.SYSTEM.getIdentifier());
                 }
                 for (int p = packages.size() - 1; p >= 0; p--) {
                     PackageInfo pkgInfo = packages.get(p);
@@ -4955,9 +5925,17 @@
 
     @Override
     public List<String> getPackagesWithCarrierPrivilegesForAllPhones() {
+        enforceReadPrivilegedPermission("getPackagesWithCarrierPrivilegesForAllPhones");
+
+        final long identity = Binder.clearCallingIdentity();
+
         List<String> privilegedPackages = new ArrayList<>();
-        for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
-           privilegedPackages.addAll(getPackagesWithCarrierPrivileges(i));
+        try {
+            for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+                privilegedPackages.addAll(getPackagesWithCarrierPrivileges(i));
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
         }
         return privilegedPackages;
     }
@@ -4980,7 +5958,7 @@
     @Override
     public boolean setLine1NumberForDisplayForSubscriber(int subId, String alphaTag,
             String number) {
-        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(
+        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(mApp,
                 subId, "setLine1NumberForDisplayForSubscriber");
 
         final long identity = Binder.clearCallingIdentity();
@@ -4993,7 +5971,7 @@
             final String subscriberId = phone.getSubscriberId();
 
             if (DBG_MERGE) {
-                Slog.d(LOG_TAG, "Setting line number for ICC=" + iccId + ", subscriberId="
+                Rlog.d(LOG_TAG, "Setting line number for ICC=" + iccId + ", subscriberId="
                         + subscriberId + " to " + number);
             }
 
@@ -5030,10 +6008,11 @@
     }
 
     @Override
-    public String getLine1NumberForDisplay(int subId, String callingPackage) {
+    public String getLine1NumberForDisplay(int subId, String callingPackage,
+            String callingFeatureId) {
         // This is open to apps with WRITE_SMS.
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneNumber(
-                mApp, subId, callingPackage, "getLine1NumberForDisplay")) {
+                mApp, subId, callingPackage, callingFeatureId, "getLine1NumberForDisplay")) {
             if (DBG_MERGE) log("getLine1NumberForDisplay returning null due to permission");
             return null;
         }
@@ -5057,9 +6036,10 @@
     }
 
     @Override
-    public String getLine1AlphaTagForDisplay(int subId, String callingPackage) {
+    public String getLine1AlphaTagForDisplay(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getLine1AlphaTagForDisplay")) {
+                mApp, subId, callingPackage, callingFeatureId, "getLine1AlphaTagForDisplay")) {
             return null;
         }
 
@@ -5077,12 +6057,13 @@
     }
 
     @Override
-    public String[] getMergedSubscriberIds(int subId, String callingPackage) {
+    public String[] getMergedSubscriberIds(int subId, String callingPackage,
+            String callingFeatureId) {
         // This API isn't public, so no need to provide a valid subscription ID - we're not worried
         // about carrier-privileged callers not having access.
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
                 mApp, SubscriptionManager.INVALID_SUBSCRIPTION_ID, callingPackage,
-                "getMergedSubscriberIds")) {
+                callingFeatureId, "getMergedSubscriberIds")) {
             return null;
         }
 
@@ -5116,7 +6097,7 @@
                         final String numberKey = PREF_CARRIERS_NUMBER_PREFIX + iccId;
                         mergeNumber = (String) prefs.get(numberKey);
                         if (DBG_MERGE) {
-                            Slog.d(LOG_TAG, "Found line number " + mergeNumber
+                            Rlog.d(LOG_TAG, "Found line number " + mergeNumber
                                     + " for active subscriber " + subscriberId);
                         }
                         if (!TextUtils.isEmpty(mergeNumber)) {
@@ -5150,7 +6131,7 @@
             final String[] resultArray = result.toArray(new String[result.size()]);
             Arrays.sort(resultArray);
             if (DBG_MERGE) {
-                Slog.d(LOG_TAG,
+                Rlog.d(LOG_TAG,
                         "Found subscribers " + Arrays.toString(resultArray) + " after merge");
             }
             return resultArray;
@@ -5160,8 +6141,8 @@
     }
 
     @Override
-    public String[] getMergedSubscriberIdsFromGroup(int subId, String callingPackage) {
-        enforceReadPrivilegedPermission("getMergedSubscriberIdsFromGroup");
+    public String[] getMergedImsisFromGroup(int subId, String callingPackage) {
+        enforceReadPrivilegedPermission("getMergedImsisFromGroup");
 
         final long identity = Binder.clearCallingIdentity();
         try {
@@ -5170,7 +6151,7 @@
             String subscriberId = telephonyManager.getSubscriberId(subId);
             if (subscriberId == null) {
                 if (DBG) {
-                    log("getMergedSubscriberIdsFromGroup can't find subscriberId for subId "
+                    log("getMergedImsisFromGroup can't find subscriberId for subId "
                             + subId);
                 }
                 return null;
@@ -5187,7 +6168,8 @@
             // Get all subscriberIds from the group.
             final List<String> mergedSubscriberIds = new ArrayList<>();
             final List<SubscriptionInfo> groupInfos = SubscriptionController.getInstance()
-                    .getSubscriptionsInGroup(groupUuid, mApp.getOpPackageName());
+                    .getSubscriptionsInGroup(groupUuid, mApp.getOpPackageName(),
+                            mApp.getAttributionTag());
             for (SubscriptionInfo subInfo : groupInfos) {
                 subscriberId = telephonyManager.getSubscriberId(subInfo.getSubscriptionId());
                 if (subscriberId != null) {
@@ -5204,7 +6186,7 @@
 
     @Override
     public boolean setOperatorBrandOverride(int subId, String brand) {
-        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(
+        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(mApp,
                 subId, "setOperatorBrandOverride");
 
         final long identity = Binder.clearCallingIdentity();
@@ -5220,7 +6202,8 @@
     public boolean setRoamingOverride(int subId, List<String> gsmRoamingList,
             List<String> gsmNonRoamingList, List<String> cdmaRoamingList,
             List<String> cdmaNonRoamingList) {
-        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(subId, "setRoamingOverride");
+        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(
+                mApp, subId, "setRoamingOverride");
 
         final long identity = Binder.clearCallingIdentity();
         try {
@@ -5311,10 +6294,10 @@
     }
 
     @Override
-    public boolean isVideoCallingEnabled(String callingPackage) {
+    public boolean isVideoCallingEnabled(String callingPackage, String callingFeatureId) {
         final Phone defaultPhone = getDefaultPhone();
-        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, defaultPhone.getSubId(), callingPackage, "isVideoCallingEnabled")) {
+        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, defaultPhone.getSubId(),
+                callingPackage, callingFeatureId, "isVideoCallingEnabled")) {
             return false;
         }
 
@@ -5335,9 +6318,11 @@
     }
 
     @Override
-    public boolean canChangeDtmfToneLength(int subId, String callingPackage) {
+    public boolean canChangeDtmfToneLength(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "isVideoCallingEnabled")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "isVideoCallingEnabled")) {
             return false;
         }
 
@@ -5353,9 +6338,9 @@
     }
 
     @Override
-    public boolean isWorldPhone(int subId, String callingPackage) {
+    public boolean isWorldPhone(int subId, String callingPackage, String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "isVideoCallingEnabled")) {
+                mApp, subId, callingPackage, callingFeatureId, "isVideoCallingEnabled")) {
             return false;
         }
 
@@ -5372,7 +6357,7 @@
 
     @Override
     public boolean isTtyModeSupported() {
-        TelecomManager telecomManager = TelecomManager.from(mApp);
+        TelecomManager telecomManager = mApp.getSystemService(TelecomManager.class);
         return telecomManager.isTtySupported();
     }
 
@@ -5430,6 +6415,12 @@
         }
     }
 
+    @Deprecated
+    @Override
+    public String getDeviceId(String callingPackage) {
+        return getDeviceIdWithFeature(callingPackage, null);
+    }
+
     /**
      * Returns the unique device ID of phone, for example, the IMEI for
      * GSM and the MEID for CDMA phones. Return null if device ID is not available.
@@ -5438,14 +6429,14 @@
      *   {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
      */
     @Override
-    public String getDeviceId(String callingPackage) {
+    public String getDeviceIdWithFeature(String callingPackage, String callingFeatureId) {
         final Phone phone = PhoneFactory.getPhone(0);
         if (phone == null) {
             return null;
         }
         int subId = phone.getSubId();
         if (!TelephonyPermissions.checkCallingOrSelfReadDeviceIdentifiers(mApp, subId,
-                callingPackage, "getDeviceId")) {
+                callingPackage, callingFeatureId, "getDeviceId")) {
             return null;
         }
 
@@ -5483,6 +6474,21 @@
     }
 
     @Override
+    public int getSubIdForPhoneAccountHandle(
+            PhoneAccountHandle phoneAccountHandle, String callingPackage, String callingFeatureId) {
+        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, getDefaultSubscription(),
+                callingPackage, callingFeatureId, "getSubIdForPhoneAccountHandle")) {
+            throw new SecurityException("Requires READ_PHONE_STATE permission.");
+        }
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            return PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccountHandle);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
     public @Nullable PhoneAccountHandle getPhoneAccountHandleForSubscriptionId(int subscriptionId) {
         final long identity = Binder.clearCallingIdentity();
         try {
@@ -5550,7 +6556,7 @@
 
     @Override
     public void factoryReset(int subId) {
-        enforceConnectivityInternalPermission();
+        enforceSettingsPermission();
         if (mUserManager.hasUserRestriction(UserManager.DISALLOW_NETWORK_RESET)) {
             return;
         }
@@ -5571,6 +6577,11 @@
             // in and combined with those stale ones. In case this happens again,
             // user can reset all network settings which will clean up this table.
             cleanUpSmsRawTable(getDefaultPhone().getContext());
+            // Clean up IMS settings as well here.
+            int slotId = getSlotIndex(subId);
+            if (slotId > SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
+                ImsManager.getInstance(mApp, slotId).factoryReset();
+            }
 
             // Erase modem config if erase modem on network setting is enabled.
             String configValue = DeviceConfig.getProperty(DeviceConfig.NAMESPACE_TELEPHONY,
@@ -5600,7 +6611,7 @@
         final long identity = Binder.clearCallingIdentity();
         try {
             final SubscriptionInfo info = mSubscriptionController.getActiveSubscriptionInfo(subId,
-                    phone.getContext().getOpPackageName());
+                    phone.getContext().getOpPackageName(), phone.getContext().getAttributionTag());
             if (info == null) {
                 log("getSimLocaleForSubscriber, inactive subId: " + subId);
                 return null;
@@ -5624,7 +6635,7 @@
             // exact locale (e.g. fr_FR = French/France). So, if the locale returned from
             // the SIM and carrier preferences does not include a country we add the country
             // determined from the SIM MCC to provide an exact locale.
-            final Locale mccLocale = MccTable.getLocaleFromMcc(mApp, mcc, simLanguage);
+            final Locale mccLocale = LocaleUtils.getLocaleFromMcc(mApp, mcc, simLanguage);
             if (mccLocale != null) {
                 if (DBG) log("No locale from SIM, using mcc locale:" + mccLocale);
                 return mccLocale.toLanguageTag();
@@ -5638,18 +6649,20 @@
     }
 
     private List<SubscriptionInfo> getAllSubscriptionInfoList() {
-        return mSubscriptionController.getAllSubInfoList(mApp.getOpPackageName());
+        return mSubscriptionController.getAllSubInfoList(mApp.getOpPackageName(),
+                mApp.getAttributionTag());
     }
 
     /**
      * NOTE: this method assumes permission checks are done and caller identity has been cleared.
      */
     private List<SubscriptionInfo> getActiveSubscriptionInfoListPrivileged() {
-        return mSubscriptionController.getActiveSubscriptionInfoList(mApp.getOpPackageName());
+        return mSubscriptionController.getActiveSubscriptionInfoList(mApp.getOpPackageName(),
+                mApp.getAttributionTag());
     }
 
     private final ModemActivityInfo mLastModemActivityInfo =
-            new ModemActivityInfo(0, 0, 0, new int[0], 0, 0);
+            new ModemActivityInfo(0, 0, 0, new int[0], 0);
 
     /**
      * Responds to the ResultReceiver with the {@link android.telephony.ModemActivityInfo} object
@@ -5666,38 +6679,7 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ModemActivityInfo ret = null;
-            synchronized (mLastModemActivityInfo) {
-                ModemActivityInfo info = (ModemActivityInfo) sendRequest(
-                        CMD_GET_MODEM_ACTIVITY_INFO,
-                        null, workSource);
-                if (isModemActivityInfoValid(info)) {
-                    int[] mergedTxTimeMs = new int[ModemActivityInfo.TX_POWER_LEVELS];
-                    for (int i = 0; i < mergedTxTimeMs.length; i++) {
-                        mergedTxTimeMs[i] = info.getTxTimeMillis()[i]
-                                + mLastModemActivityInfo.getTxTimeMillis()[i];
-                    }
-                    mLastModemActivityInfo.setTimestamp(info.getTimestamp());
-                    mLastModemActivityInfo.setSleepTimeMillis(info.getSleepTimeMillis()
-                            + mLastModemActivityInfo.getSleepTimeMillis());
-                    mLastModemActivityInfo.setIdleTimeMillis(
-                            info.getIdleTimeMillis() + mLastModemActivityInfo.getIdleTimeMillis());
-                    mLastModemActivityInfo.setTxTimeMillis(mergedTxTimeMs);
-                    mLastModemActivityInfo.setRxTimeMillis(
-                            info.getRxTimeMillis() + mLastModemActivityInfo.getRxTimeMillis());
-                    mLastModemActivityInfo.setEnergyUsed(
-                            info.getEnergyUsed() + mLastModemActivityInfo.getEnergyUsed());
-                }
-                ret = new ModemActivityInfo(mLastModemActivityInfo.getTimestamp(),
-                        mLastModemActivityInfo.getSleepTimeMillis(),
-                        mLastModemActivityInfo.getIdleTimeMillis(),
-                        mLastModemActivityInfo.getTxTimeMillis(),
-                        mLastModemActivityInfo.getRxTimeMillis(),
-                        mLastModemActivityInfo.getEnergyUsed());
-            }
-            Bundle bundle = new Bundle();
-            bundle.putParcelable(TelephonyManager.MODEM_ACTIVITY_RESULT_KEY, ret);
-            result.send(0, bundle);
+            sendRequestAsync(CMD_GET_MODEM_ACTIVITY_INFO, result, null, workSource);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -5712,13 +6694,14 @@
         int activityDurationMs =
             (int) (info.getTimestamp() - mLastModemActivityInfo.getTimestamp());
         int totalTxTimeMs = 0;
-        for (int i = 0; i < info.getTxTimeMillis().length; i++) {
-            totalTxTimeMs += info.getTxTimeMillis()[i];
+        int[] txTimeMs = info.getTransmitTimeMillis();
+        for (int i = 0; i < info.getTransmitPowerInfo().size(); i++) {
+            totalTxTimeMs += txTimeMs[i];
         }
         return (info.isValid()
             && (info.getSleepTimeMillis() <= activityDurationMs)
             && (info.getIdleTimeMillis() <= activityDurationMs)
-            && (info.getRxTimeMillis() <= activityDurationMs)
+            && (info.getReceiveTimeMillis() <= activityDurationMs)
             && (totalTxTimeMs <= activityDurationMs));
     }
 
@@ -5727,9 +6710,10 @@
      * Returns the service state information on specified subscription.
      */
     @Override
-    public ServiceState getServiceStateForSubscriber(int subId, String callingPackage) {
+    public ServiceState getServiceStateForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getServiceStateForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId, "getServiceStateForSubscriber")) {
             return null;
         }
 
@@ -5737,6 +6721,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("getServiceStateForSubscriber")
@@ -5748,6 +6733,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("getServiceStateForSubscriber")
@@ -5772,8 +6758,8 @@
             // Scrub out the location info in ServiceState depending on what level of access
             // the caller has.
             if (hasFinePermission) return ss;
-            if (hasCoarsePermission) return ss.sanitizeLocationInfo(false);
-            return ss.sanitizeLocationInfo(true);
+            if (hasCoarsePermission) return ss.createLocationInfoSanitizedCopy(false);
+            return ss.createLocationInfoSanitizedCopy(true);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -5818,8 +6804,8 @@
             PhoneAccountHandle phoneAccountHandle, Uri uri) {
         final Phone defaultPhone = getDefaultPhone();
         mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
-        if (!TextUtils.equals(callingPackage,
-                TelecomManager.from(defaultPhone.getContext()).getDefaultDialerPackage())) {
+        TelecomManager tm = defaultPhone.getContext().getSystemService(TelecomManager.class);
+        if (!TextUtils.equals(callingPackage, tm.getDefaultDialerPackage())) {
             TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
                     mApp, PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccountHandle),
                     "setVoicemailRingtoneUri");
@@ -5875,8 +6861,8 @@
             PhoneAccountHandle phoneAccountHandle, boolean enabled) {
         final Phone defaultPhone = getDefaultPhone();
         mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
-        if (!TextUtils.equals(callingPackage,
-                TelecomManager.from(defaultPhone.getContext()).getDefaultDialerPackage())) {
+        TelecomManager tm = defaultPhone.getContext().getSystemService(TelecomManager.class);
+        if (!TextUtils.equals(callingPackage, tm.getDefaultDialerPackage())) {
             TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
                     mApp, PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccountHandle),
                     "setVoicemailVibrationEnabled");
@@ -6216,37 +7202,12 @@
     }
 
     @Override
-    public void onShellCommand(FileDescriptor in, FileDescriptor out, FileDescriptor err,
-            String[] args, ShellCallback callback, ResultReceiver resultReceiver)
-            throws RemoteException {
-        (new TelephonyShellCommand(this)).exec(this, in, out, err, args, callback, resultReceiver);
-    }
-
-    /**
-     * Get aggregated video call data usage since boot.
-     *
-     * @param perUidStats True if requesting data usage per uid, otherwise overall usage.
-     * @return Snapshot of video call data usage
-     * {@hide}
-     */
-    @Override
-    public NetworkStats getVtDataUsage(int subId, boolean perUidStats) {
-        mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_NETWORK_USAGE_HISTORY,
-                null);
-
-        final long identity = Binder.clearCallingIdentity();
-        try {
-            // NetworkStatsService keeps tracking the active network interface and identity. It
-            // records the delta with the corresponding network identity.
-            // We just return the total video call data usage snapshot since boot.
-            Phone phone = getPhone(subId);
-            if (phone != null) {
-                return phone.getVtDataUsage(perUidStats);
-            }
-            return null;
-        } finally {
-            Binder.restoreCallingIdentity(identity);
-        }
+    public int handleShellCommand(@NonNull ParcelFileDescriptor in,
+            @NonNull ParcelFileDescriptor out, @NonNull ParcelFileDescriptor err,
+            @NonNull String[] args) {
+        return new TelephonyShellCommand(this, getDefaultPhone().getContext()).exec(
+                this, in.getFileDescriptor(), out.getFileDescriptor(),
+                        err.getFileDescriptor(), args);
     }
 
     /**
@@ -6276,9 +7237,10 @@
      * @hide
      */
     @Override
-    public List<ClientRequestStats> getClientRequestStats(String callingPackage, int subId) {
+    public List<ClientRequestStats> getClientRequestStats(String callingPackage,
+            String callingFeatureId, int subId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getClientRequestStats")) {
+                mApp, subId, callingPackage, callingFeatureId, "getClientRequestStats")) {
             return null;
         }
         Phone phone = getPhone(subId);
@@ -6389,14 +7351,15 @@
      * Get the current modem radio state for the given slot.
      * @param slotIndex slot index.
      * @param callingPackage the name of the package making the call.
+     * @param callingFeatureId The feature in the package.
      * @return the current radio power state from the modem
      */
     @Override
-    public int getRadioPowerState(int slotIndex, String callingPackage) {
+    public int getRadioPowerState(int slotIndex, String callingPackage, String callingFeatureId) {
         Phone phone = PhoneFactory.getPhone(slotIndex);
         if (phone != null) {
-            if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                    mApp, phone.getSubId(), callingPackage, "getRadioPowerState")) {
+            if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, phone.getSubId(),
+                    callingPackage, callingFeatureId, "getRadioPowerState")) {
                 return TelephonyManager.RADIO_POWER_UNAVAILABLE;
             }
 
@@ -6470,7 +7433,8 @@
 
     @Override
     public boolean isManualNetworkSelectionAllowed(int subId) {
-        TelephonyPermissions.enforeceCallingOrSelfReadPhoneStatePermissionOrCarrierPrivilege(
+        TelephonyPermissions
+                .enforeceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
                 mApp, subId, "isManualNetworkSelectionAllowed");
 
         boolean isAllowed = true;
@@ -6573,6 +7537,12 @@
                     }
                 }
 
+                if (cardId != null) {
+                    // if cardId is an ICCID, strip off trailing Fs before exposing to user
+                    // if cardId is an EID, it's all digits so this is fine
+                    cardId = IccUtils.stripTrailingFs(cardId);
+                }
+
                 int cardState = 0;
                 switch (slot.getCardState()) {
                     case CARDSTATE_ABSENT:
@@ -6629,23 +7599,6 @@
         }
     }
 
-    @Override
-    public void setRadioIndicationUpdateMode(int subId, int filters, int mode) {
-        enforceModifyPermission();
-        final Phone phone = getPhone(subId);
-        if (phone == null) {
-            loge("setRadioIndicationUpdateMode fails with invalid subId: " + subId);
-            return;
-        }
-
-        final long identity = Binder.clearCallingIdentity();
-        try {
-            phone.setRadioIndicationUpdateMode(filters, mode);
-        } finally {
-            Binder.restoreCallingIdentity(identity);
-        }
-    }
-
     /**
      * A test API to reload the UICC profile.
      *
@@ -6681,8 +7634,7 @@
      * Returns false if the mobile data is disabled by default, otherwise return true.
      */
     private boolean getDefaultDataEnabled() {
-        return "true".equalsIgnoreCase(
-                SystemProperties.get(DEFAULT_MOBILE_DATA_PROPERTY_NAME, "true"));
+        return TelephonyProperties.mobile_data().orElse(true);
     }
 
     /**
@@ -6693,8 +7645,7 @@
     private boolean getDefaultDataRoamingEnabled(int subId) {
         final CarrierConfigManager configMgr = (CarrierConfigManager)
                 mApp.getSystemService(Context.CARRIER_CONFIG_SERVICE);
-        boolean isDataRoamingEnabled = "true".equalsIgnoreCase(
-                SystemProperties.get(DEFAULT_DATA_ROAMING_PROPERTY_NAME, "false"));
+        boolean isDataRoamingEnabled = TelephonyProperties.data_roaming().orElse(true);
         isDataRoamingEnabled |= configMgr.getConfigForSubId(subId).getBoolean(
                 CarrierConfigManager.KEY_CARRIER_DEFAULT_DATA_ROAMING_ENABLED_BOOL);
         return isDataRoamingEnabled;
@@ -6705,11 +7656,12 @@
      * not set, return {@link Phone#PREFERRED_NT_MODE}.
      */
     private int getDefaultNetworkType(int subId) {
-        return Integer.parseInt(
-                TelephonyManager.getTelephonyProperty(
-                        mSubscriptionController.getPhoneId(subId),
-                        DEFAULT_NETWORK_MODE_PROPERTY_NAME,
-                        String.valueOf(Phone.PREFERRED_NT_MODE)));
+        List<Integer> list = TelephonyProperties.default_network();
+        int phoneId = mSubscriptionController.getPhoneId(subId);
+        if (phoneId >= 0 && phoneId < list.size() && list.get(phoneId) != null) {
+            return list.get(phoneId);
+        }
+        return Phone.PREFERRED_NT_MODE;
     }
 
     @Override
@@ -6749,9 +7701,11 @@
     }
 
     @Override
-    public int getNumberOfModemsWithSimultaneousDataConnections(int subId, String callingPackage) {
+    public int getNumberOfModemsWithSimultaneousDataConnections(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getNumberOfModemsWithSimultaneousDataConnections")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getNumberOfModemsWithSimultaneousDataConnections")) {
             return -1;
         }
 
@@ -6765,7 +7719,8 @@
 
     @Override
     public int getCdmaRoamingMode(int subId) {
-        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
+        TelephonyPermissions
+                .enforeceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
                 mApp, subId, "getCdmaRoamingMode");
 
         final long identity = Binder.clearCallingIdentity();
@@ -6802,80 +7757,12 @@
         }
     }
 
-    private void ensureUserRunning(int userId) {
-        if (!mUserManager.isUserRunning(userId)) {
-            throw new IllegalStateException("User " + userId + " does not exist or not running");
-        }
-    }
-
-    /**
-     * Returns a list of SMS apps on a given user.
-     *
-     * Only the shell user (UID 2000 or 0) can call it.
-     * Target user must be running.
-     */
-    @Override
-    public String[] getSmsApps(int userId) {
-        TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "getSmsApps");
-        ensureUserRunning(userId);
-
-        final Collection<SmsApplicationData> apps =
-                SmsApplication.getApplicationCollectionAsUser(mApp, userId);
-
-        String[] ret = new String[apps.size()];
-        int i = 0;
-        for (SmsApplicationData app : apps) {
-            ret[i++] = app.mPackageName;
-        }
-        return ret;
-    }
-
-    /**
-     * Returns the default SMS app package name on a given user.
-     *
-     * Only the shell user (UID 2000 or 0) can call it.
-     * Target user must be running.
-     */
-    @Override
-    public String getDefaultSmsApp(int userId) {
-        TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "getDefaultSmsApp");
-        ensureUserRunning(userId);
-
-        final ComponentName cn = SmsApplication.getDefaultSmsApplicationAsUser(mApp,
-                /* updateIfNeeded= */ true, userId);
-        return cn == null ? null : cn.getPackageName();
-    }
-
-    /**
-     * Set a package as the default SMS app on a given user.
-     *
-     * Only the shell user (UID 2000 or 0) can call it.
-     * Target user must be running.
-     */
-    @Override
-    public void setDefaultSmsApp(int userId, String packageName) {
-        TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "setDefaultSmsApp");
-        ensureUserRunning(userId);
-
-        boolean found = false;
-        for (String pkg : getSmsApps(userId)) {
-            if (TextUtils.equals(packageName, pkg)) {
-                found = true;
-                break;
-            }
-        }
-        if (!found) {
-            throw new IllegalArgumentException("Package " + packageName + " is not an SMS app");
-        }
-
-        SmsApplication.setDefaultApplicationAsUser(packageName, mApp, userId);
-    }
-
     @Override
     public Map<Integer, List<EmergencyNumber>> getEmergencyNumberList(
-            String callingPackage) {
+            String callingPackage, String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, getDefaultSubscription(), callingPackage, "getEmergencyNumberList")) {
+                mApp, getDefaultSubscription(), callingPackage, callingFeatureId,
+                "getEmergencyNumberList")) {
             throw new SecurityException("Requires READ_PHONE_STATE permission.");
         }
         final long identity = Binder.clearCallingIdentity();
@@ -6967,6 +7854,74 @@
     }
 
     @Override
+    public int getEmergencyNumberDbVersion(int subId) {
+        enforceReadPrivilegedPermission("getEmergencyNumberDbVersion");
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            final Phone phone = getPhone(subId);
+            if (phone == null) {
+                loge("getEmergencyNumberDbVersion fails with invalid subId: " + subId);
+                return TelephonyManager.INVALID_EMERGENCY_NUMBER_DB_VERSION;
+            }
+            return phone.getEmergencyNumberDbVersion();
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
+    public void notifyOtaEmergencyNumberDbInstalled() {
+        enforceModifyPermission();
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            for (Phone phone: PhoneFactory.getPhones()) {
+                EmergencyNumberTracker tracker = phone.getEmergencyNumberTracker();
+                if (tracker != null) {
+                    tracker.updateOtaEmergencyNumberDatabase();
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
+    public void updateOtaEmergencyNumberDbFilePath(ParcelFileDescriptor otaParcelFileDescriptor) {
+        enforceActiveEmergencySessionPermission();
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            for (Phone phone: PhoneFactory.getPhones()) {
+                EmergencyNumberTracker tracker = phone.getEmergencyNumberTracker();
+                if (tracker != null) {
+                    tracker.updateOtaEmergencyNumberDbFilePath(otaParcelFileDescriptor);
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
+    public void resetOtaEmergencyNumberDbFilePath() {
+        enforceActiveEmergencySessionPermission();
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            for (Phone phone: PhoneFactory.getPhones()) {
+                EmergencyNumberTracker tracker = phone.getEmergencyNumberTracker();
+                if (tracker != null) {
+                    tracker.resetOtaEmergencyNumberDbFilePath();
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
     public List<String> getCertsFromCarrierPrivilegeAccessRules(int subId) {
         enforceReadPrivilegedPermission("getCertsFromCarrierPrivilegeAccessRules");
         Phone phone = getPhone(subId);
@@ -7010,12 +7965,14 @@
      * Whether a modem stack is enabled or not.
      */
     @Override
-    public boolean isModemEnabledForSlot(int slotIndex, String callingPackage) {
+    public boolean isModemEnabledForSlot(int slotIndex, String callingPackage,
+            String callingFeatureId) {
         Phone phone = PhoneFactory.getPhone(slotIndex);
         if (phone == null) return false;
 
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, phone.getSubId(), callingPackage, "isModemEnabledForSlot")) {
+                mApp, phone.getSubId(), callingPackage, callingFeatureId,
+                "isModemEnabledForSlot")) {
             throw new SecurityException("Requires READ_PHONE_STATE permission.");
         }
 
@@ -7047,9 +8004,10 @@
 
     @Override
     @TelephonyManager.IsMultiSimSupportedResult
-    public int isMultiSimSupported(String callingPackage) {
+    public int isMultiSimSupported(String callingPackage, String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp,
-                getDefaultPhone().getSubId(), callingPackage, "isMultiSimSupported")) {
+                getDefaultPhone().getSubId(), callingPackage, callingFeatureId,
+                "isMultiSimSupported")) {
             return TelephonyManager.MULTISIM_NOT_SUPPORTED_BY_HARDWARE;
         }
 
@@ -7118,14 +8076,43 @@
         }
     }
 
+    @Override
+    public boolean isApplicationOnUicc(int subId, int appType) {
+        enforceReadPrivilegedPermission("isApplicationOnUicc");
+        Phone phone = getPhone(subId);
+        if (phone == null) {
+            return false;
+        }
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            UiccCard uiccCard = phone.getUiccCard();
+            if (uiccCard == null) {
+                return false;
+            }
+            UiccProfile uiccProfile = uiccCard.getUiccProfile();
+            if (uiccProfile == null) {
+                return false;
+            }
+            if (TelephonyManager.APPTYPE_SIM <= appType
+                    && appType <= TelephonyManager.APPTYPE_ISIM) {
+                return uiccProfile.isApplicationOnIcc(AppType.values()[appType]);
+            }
+            return false;
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
     /**
      * Get whether making changes to modem configurations will trigger reboot.
      * Return value defaults to true.
      */
     @Override
-    public boolean doesSwitchMultiSimConfigTriggerReboot(int subId, String callingPackage) {
+    public boolean doesSwitchMultiSimConfigTriggerReboot(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "doesSwitchMultiSimConfigTriggerReboot")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "doesSwitchMultiSimConfigTriggerReboot")) {
             return false;
         }
         final long identity = Binder.clearCallingIdentity();
@@ -7176,6 +8163,15 @@
     }
 
     /**
+     * Get the current calling package name.
+     * @return the current calling package name
+     */
+    @Override
+    public String getCurrentPackageName() {
+        return mApp.getPackageManager().getPackagesForUid(Binder.getCallingUid())[0];
+    }
+
+    /**
      * Return whether data is enabled for certain APN type. This will tell if framework will accept
      * corresponding network requests on a subId.
      *
@@ -7183,7 +8179,7 @@
      *  1) user data is turned on, or
      *  2) APN is un-metered for this subscription, or
      *  3) APN type is whitelisted. E.g. MMS is whitelisted if
-     *  {@link SubscriptionManager#setAlwaysAllowMmsData} is turned on.
+     *  {@link TelephonyManager#setAlwaysAllowMmsData} is turned on.
      *
      * @return whether data is allowed for a apn type.
      *
@@ -7191,10 +8187,8 @@
      */
     @Override
     public boolean isDataEnabledForApn(int apnType, int subId, String callingPackage) {
-        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "isDataEnabledForApn")) {
-            throw new SecurityException("Needs READ_PHONE_STATE for isDataEnabledForApn");
-        }
+        enforceReadPrivilegedPermission("Needs READ_PRIVILEGED_PHONE_STATE for "
+                + "isDataEnabledForApn");
 
         // Now that all security checks passes, perform the operation as ourselves.
         final long identity = Binder.clearCallingIdentity();
@@ -7226,7 +8220,55 @@
     }
 
     @Override
+    public void setSystemSelectionChannels(List<RadioAccessSpecifier> specifiers,
+            int subscriptionId, IBooleanConsumer resultCallback) {
+        enforceModifyPermission();
+        long token = Binder.clearCallingIdentity();
+        try {
+            Phone phone = getPhone(subscriptionId);
+            if (phone == null) {
+                try {
+                    if (resultCallback != null) {
+                        resultCallback.accept(false);
+                    }
+                } catch (RemoteException e) {
+                    // ignore
+                }
+                return;
+            }
+            Pair<List<RadioAccessSpecifier>, Consumer<Boolean>> argument =
+                    Pair.create(specifiers, (x) -> {
+                        try {
+                            if (resultCallback != null) {
+                                resultCallback.accept(x);
+                            }
+                        } catch (RemoteException e) {
+                            // ignore
+                        }
+                    });
+            sendRequestAsync(CMD_SET_SYSTEM_SELECTION_CHANNELS, argument, phone, null);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    @Override
+    public boolean isMvnoMatched(int subId, int mvnoType, @NonNull String mvnoMatchData) {
+        enforceReadPrivilegedPermission("isMvnoMatched");
+        IccRecords iccRecords = UiccController.getInstance().getIccRecords(
+                SubscriptionManager.getPhoneId(subId), UiccController.APP_FAM_3GPP);
+        if (iccRecords == null) {
+            Log.d(LOG_TAG, "isMvnoMatched# IccRecords is null");
+            return false;
+        }
+        return ApnSettingUtils.mvnoMatches(iccRecords, mvnoType, mvnoMatchData);
+    }
+
+    @Override
     public void enqueueSmsPickResult(String callingPackage, IIntegerConsumer pendingSubIdResult) {
+        if (callingPackage == null) {
+            callingPackage = getCurrentPackageName();
+        }
         SmsPermissions permissions = new SmsPermissions(getDefaultPhone(), mApp,
                 (AppOpsManager) mApp.getSystemService(Context.APP_OPS_SERVICE));
         if (!permissions.checkCallingCanSendSms(callingPackage, "Sending message")) {
@@ -7297,4 +8339,194 @@
             Binder.restoreCallingIdentity(identity);
         }
     }
+
+    @Override
+    public boolean setAlwaysAllowMmsData(int subId, boolean alwaysAllow) {
+        enforceModifyPermission();
+
+        // Now that all security checks passes, perform the operation as ourselves.
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            Phone phone = getPhone(subId);
+            if (phone == null) return false;
+
+            return phone.getDataEnabledSettings().setAlwaysAllowMmsData(alwaysAllow);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
+     * Updates whether conference event pacakge handling is enabled.
+     * @param isCepEnabled {@code true} if CEP handling is enabled (default), or {@code false}
+     *                                 otherwise.
+     */
+    @Override
+    public void setCepEnabled(boolean isCepEnabled) {
+        TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "setCepEnabled");
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            Rlog.i(LOG_TAG, "setCepEnabled isCepEnabled=" + isCepEnabled);
+            for (Phone phone : PhoneFactory.getPhones()) {
+                Phone defaultPhone = phone.getImsPhone();
+                if (defaultPhone != null && defaultPhone.getPhoneType() == PHONE_TYPE_IMS) {
+                    ImsPhone imsPhone = (ImsPhone) defaultPhone;
+                    ImsPhoneCallTracker imsPhoneCallTracker =
+                            (ImsPhoneCallTracker) imsPhone.getCallTracker();
+                    imsPhoneCallTracker.setConferenceEventPackageEnabled(isCepEnabled);
+                    Rlog.i(LOG_TAG, "setCepEnabled isCepEnabled=" + isCepEnabled + ", for imsPhone "
+                            + imsPhone.getMsisdn());
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
+     * Notify that an RCS autoconfiguration XML file has been received for provisioning.
+     *
+     * @param config       The XML file to be read. ASCII/UTF8 encoded text if not compressed.
+     * @param isCompressed The XML file is compressed in gzip format and must be decompressed
+     *                     before being read.
+     */
+    @Override
+    public void notifyRcsAutoConfigurationReceived(int subId, @NonNull byte[] config, boolean
+            isCompressed) {
+        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
+                mApp, subId, "notifyRcsAutoConfigurationReceived");
+        try {
+            IImsConfig configBinder = getImsConfig(getSlotIndex(subId), ImsFeature.FEATURE_RCS);
+            if (configBinder == null) {
+                Rlog.e(LOG_TAG, "null result for getImsConfig");
+            } else {
+                configBinder.notifyRcsAutoConfigurationReceived(config, isCompressed);
+            }
+        } catch (RemoteException e) {
+            Rlog.e(LOG_TAG, "fail to getImsConfig " + e.getMessage());
+        }
+    }
+
+    @Override
+    public boolean isIccLockEnabled(int subId) {
+        enforceReadPrivilegedPermission("isIccLockEnabled");
+
+        // Now that all security checks passes, perform the operation as ourselves.
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            Phone phone = getPhone(subId);
+            if (phone != null && phone.getIccCard() != null) {
+                return phone.getIccCard().getIccLockEnabled();
+            } else {
+                return false;
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
+     * Set the ICC pin lock enabled or disabled.
+     *
+     * @return an integer representing the status of IccLock enabled or disabled in the following
+     * three cases:
+     *   - {@link TelephonyManager#CHANGE_ICC_LOCK_SUCCESS} if enabled or disabled IccLock
+     *   successfully.
+     *   - Positive number and zero for remaining password attempts.
+     *   - Negative number for other failure cases (such like enabling/disabling PIN failed).
+     *
+     */
+    @Override
+    public int setIccLockEnabled(int subId, boolean enabled, String password) {
+        enforceModifyPermission();
+
+        Phone phone = getPhone(subId);
+        if (phone == null) {
+            return 0;
+        }
+        // Now that all security checks passes, perform the operation as ourselves.
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            int attemptsRemaining = (int) sendRequest(CMD_SET_ICC_LOCK_ENABLED,
+                    new Pair<Boolean, String>(enabled, password), phone, null);
+            return attemptsRemaining;
+
+        } catch (Exception e) {
+            Log.e(LOG_TAG, "setIccLockEnabled. Exception e =" + e);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+        return 0;
+    }
+
+    /**
+     * Change the ICC password used in ICC pin lock.
+     *
+     * @return an integer representing the status of IccLock changed in the following three cases:
+     *   - {@link TelephonyManager#CHANGE_ICC_LOCK_SUCCESS} if changed IccLock successfully.
+     *   - Positive number and zero for remaining password attempts.
+     *   - Negative number for other failure cases (such like enabling/disabling PIN failed).
+     *
+     */
+    @Override
+    public int changeIccLockPassword(int subId, String oldPassword, String newPassword) {
+        enforceModifyPermission();
+
+        Phone phone = getPhone(subId);
+        if (phone == null) {
+            return 0;
+        }
+        // Now that all security checks passes, perform the operation as ourselves.
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            int attemptsRemaining = (int) sendRequest(CMD_CHANGE_ICC_LOCK_PASSWORD,
+                    new Pair<String, String>(oldPassword, newPassword), phone, null);
+            return attemptsRemaining;
+
+        } catch (Exception e) {
+            Log.e(LOG_TAG, "changeIccLockPassword. Exception e =" + e);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+        return 0;
+    }
+
+    /**
+     * Request for receiving user activity notification
+     */
+    @Override
+    public void requestUserActivityNotification() {
+        if (!mNotifyUserActivity.get()
+                && !mMainThreadHandler.hasMessages(MSG_NOTIFY_USER_ACTIVITY)) {
+            mNotifyUserActivity.set(true);
+        }
+    }
+
+    /**
+     * Called when userActivity is signalled in the power manager.
+     * This is safe to call from any thread, with any window manager locks held or not.
+     */
+    @Override
+    public void userActivity() {
+        // ***************************************
+        // *  Inherited from PhoneWindowManager  *
+        // ***************************************
+        // THIS IS CALLED FROM DEEP IN THE POWER MANAGER
+        // WITH ITS LOCKS HELD.
+        //
+        // This code must be VERY careful about the locks
+        // it acquires.
+        // In fact, the current code acquires way too many,
+        // and probably has lurking deadlocks.
+
+        if (Binder.getCallingUid() != Process.SYSTEM_UID) {
+            throw new SecurityException("Only the OS may call notifyUserActivity()");
+        }
+
+        if (mNotifyUserActivity.getAndSet(false)) {
+            mMainThreadHandler.sendEmptyMessageDelayed(MSG_NOTIFY_USER_ACTIVITY,
+                    USER_ACTIVITY_NOTIFICATION_DELAY);
+        }
+    }
 }
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index 20c8276..3e36644 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -43,10 +43,7 @@
 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.IccCard;
 import com.android.internal.telephony.MmiCode;
@@ -54,10 +51,9 @@
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.PhoneFactory;
 import com.android.internal.telephony.TelephonyCapabilities;
-import com.android.phone.CallGatewayManager.RawGatewayInfo;
 import com.android.phone.settings.SuppServicesUiUtil;
+import com.android.telephony.Rlog;
 
-import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -131,79 +127,35 @@
     }
 
     /**
-     * @see placeCall below
-     */
-    public static int placeCall(Context context, Phone phone, String number, Uri contactRef,
-            boolean isEmergencyCall) {
-        return placeCall(context, phone, number, contactRef, isEmergencyCall,
-                CallGatewayManager.EMPTY_INFO, null);
-    }
-
-    /**
      * 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
-     * @param callGateway Class for setting gateway data on a successful call.
      *
      * @return either CALL_STATUS_DIALED or CALL_STATUS_FAILED
      */
-    public static int placeCall(Context context, Phone phone, String number, Uri contactRef,
-            boolean isEmergencyCall, RawGatewayInfo gatewayInfo, CallGatewayManager callGateway) {
-        final Uri gatewayUri = gatewayInfo.gatewayUri;
+    public static int placeOtaspCall(Context context, Phone phone, String number) {
+        final Uri gatewayUri = null;
 
         if (VDBG) {
             log("placeCall()... number: '" + number + "'"
-                    + ", GW:'" + gatewayUri + "'"
-                    + ", contactRef:" + contactRef
-                    + ", isEmergencyCall: " + isEmergencyCall);
+                    + ", GW:'" + gatewayUri + "'");
         } else {
             log("placeCall()... number: " + toLogSafePhoneNumber(number)
-                    + ", GW: " + (gatewayUri != null ? "non-null" : "null")
-                    + ", emergency? " + isEmergencyCall);
+                    + ", GW: " + (gatewayUri != null ? "non-null" : "null"));
         }
         final PhoneGlobals app = PhoneGlobals.getInstance();
 
         boolean useGateway = false;
-        if (null != gatewayUri &&
-            !isEmergencyCall &&
-            PhoneUtils.isRoutableViaGateway(number)) {  // Filter out MMI, OTA and other codes.
-            useGateway = true;
-        }
+        Uri contactRef = null;
 
         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 || !PhoneAccount.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;
-        }
+        numberToDial = number;
 
         try {
             connection = app.mCM.dial(phone, numberToDial, VideoProfile.STATE_AUDIO_ONLY);
@@ -228,33 +180,6 @@
             if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
                 updateCdmaCallStateOnNewOutgoingCall(app, connection);
             }
-
-            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;
-                        }
-                    }
-                }
-            }
-
-            startGetCallerInfo(context, connection, null, null, gatewayInfo);
         }
 
         return status;
@@ -299,7 +224,7 @@
                                           MmiCode mmiCode,
                                           Message buttonCallbackMessage,
                                           Dialog previousAlert) {
-        log("displayMMIInitiate: " + android.telecom.Log.pii(mmiCode.toString()));
+        log("displayMMIInitiate: " + Rlog.pii(LOG_TAG, mmiCode.toString()));
         if (previousAlert != null) {
             previousAlert.dismiss();
         }
@@ -448,7 +373,7 @@
             app.setPukEntryProgressDialog(pd);
 
         } else if ((app.getPUKEntryActivity() != null) && (state == MmiCode.State.FAILED)) {
-            createUssdDialog(app, context, text,
+            createUssdDialog(app, context, text, phone,
                     WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
             // In case of failure to unlock, we'll need to reset the
             // PUK unlock activity, so that the user may try again.
@@ -463,7 +388,7 @@
             // A USSD in a pending state means that it is still
             // interacting with the user.
             if (state != MmiCode.State.PENDING) {
-                createUssdDialog(app, context, text,
+                createUssdDialog(app, context, text, phone,
                         WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
             } else {
                 log("displayMMIComplete: USSD code has requested user input. Constructing input "
@@ -584,10 +509,11 @@
      * @param app This is {@link PhoneGlobals}
      * @param context Context to get strings.
      * @param text This is message's result.
+     * @param phone This is phone to create sssd dialog.
      * @param windowType The new window type. {@link WindowManager.LayoutParams}.
      */
     public static void createUssdDialog(PhoneGlobals app, Context context, CharSequence text,
-            int windowType) {
+            Phone phone, int windowType) {
         log("displayMMIComplete: MMI code has finished running.");
 
         log("displayMMIComplete: Extended NW displayMMIInitiate (" + text + ")");
@@ -621,6 +547,13 @@
                     .insert(0, app.getResources().getString(R.string.ussd_dialog_sep))
                     .insert(0, "\n");
         }
+        if (phone != null && phone.getCarrierName() != null) {
+            sUssdDialog.setTitle(app.getResources().getString(R.string.carrier_mmi_msg_title,
+                    phone.getCarrierName()));
+        } else {
+            sUssdDialog
+                    .setTitle(app.getResources().getString(R.string.default_carrier_mmi_msg_title));
+        }
         sUssdMsg.insert(0, text);
         sUssdDialog.setMessage(sUssdMsg.toString());
         sUssdDialog.show();
@@ -654,533 +587,12 @@
         return canceled;
     }
 
-    /**
-     * 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;
-    }
-
-    /**
-     * 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,
-            RawGatewayInfo info) {
-        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 (info != null && info != CallGatewayManager.EMPTY_INFO) {
-                // Gateway number, the connection number is actually the gateway number.
-                // need to lookup via dialed number.
-                number = info.trueNumber;
-            }
-
-            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_IMS: log("  ==> PHONE_TYPE_IMS"); break;
-                    case PhoneConstants.PHONE_TYPE_CDMA: log("  ==> PHONE_TYPE_CDMA"); break;
-                    case PhoneConstants.PHONE_TYPE_SIP: log("  ==> PHONE_TYPE_SIP"); break;
-                    case PhoneConstants.PHONE_TYPE_THIRD_PARTY:
-                        log("  ==> PHONE_TYPE_THIRD_PARTY");
-                        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 (info != null) {
-                    // Gateway number, the connection number is actually the gateway number.
-                    // need to lookup via dialed number.
-                    updatedNumber = info.trueNumber;
-                }
-
-                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;
-    }
-
-    static boolean isInEmergencyCall(CallManager cm) {
-        Call fgCall = cm.getActiveFgCall();
-        // isIdle includes checks for the DISCONNECTING/DISCONNECTED state.
-        if(!fgCall.isIdle()) {
-            for (Connection cn : fgCall.getConnections()) {
-                if (PhoneNumberUtils.isLocalEmergencyNumber(PhoneGlobals.getInstance(),
-                        cn.getAddress())) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
 
     //
     // Misc UI policy helper functions
     //
 
     /**
-     * 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 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).
@@ -1289,7 +701,7 @@
      * {@code false} otherwise.
      */
     public static boolean isPhoneAccountActive(SubscriptionManager sm, PhoneAccountHandle handle) {
-        return sm.getActiveSubscriptionInfoForIccIndex(handle.getId()) != null;
+        return sm.getActiveSubscriptionInfoForIcc(handle.getId()) != null;
     }
 
     private static ComponentName getPstnConnectionServiceName() {
diff --git a/src/com/android/phone/RestrictedPreference.java b/src/com/android/phone/RestrictedPreference.java
deleted file mode 100644
index b8b6fe7..0000000
--- a/src/com/android/phone/RestrictedPreference.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2018 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 com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-import android.content.Context;
-import android.preference.Preference;
-import android.preference.PreferenceScreen;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.TextView;
-
-import com.android.settingslib.RestrictedLockUtils;
-
-/**
- * Preference class that supports being disabled by a device admin.
- *
- * <p>This class is a mimic of ../../../frameworks/base/packages/SettingsLib/src/com/android
- * /settingslib/RestrictedPreference.java,
- * but support framework {@link Preference}.
- */
-public class RestrictedPreference extends Preference {
-    private final Context mContext;
-
-    private boolean mDisabledByAdmin;
-    private EnforcedAdmin mEnforcedAdmin;
-
-    public RestrictedPreference(Context context, AttributeSet attrs,
-            int defStyleAttr, int defStyleRes) {
-        super(context, attrs, defStyleAttr, defStyleRes);
-        mContext = context;
-
-        setLayoutResource(com.android.settingslib.R.layout.preference_two_target);
-        setWidgetLayoutResource(R.layout.restricted_icon);
-    }
-
-    public RestrictedPreference(Context context, AttributeSet attrs, int defStyleAttr) {
-        this(context, attrs, defStyleAttr, 0);
-    }
-
-    public RestrictedPreference(Context context, AttributeSet attrs) {
-        this(context, attrs, android.R.attr.preferenceStyle);
-    }
-
-    public RestrictedPreference(Context context) {
-        this(context, null);
-    }
-
-    @Override
-    public void performClick(PreferenceScreen preferenceScreen) {
-        if (mDisabledByAdmin) {
-            RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext, mEnforcedAdmin);
-        } else {
-            super.performClick(preferenceScreen);
-        }
-    }
-
-    @Override
-    protected void onBindView(View view) {
-        super.onBindView(view);
-
-        final View divider = view.findViewById(com.android.settingslib.R.id.two_target_divider);
-        final View widgetFrame = view.findViewById(android.R.id.widget_frame);
-        final View restrictedIcon = view.findViewById(R.id.restricted_icon);
-        final TextView summaryView = view.findViewById(android.R.id.summary);
-        if (divider != null) {
-            divider.setVisibility(mDisabledByAdmin ? View.VISIBLE : View.GONE);
-        }
-        if (widgetFrame != null) {
-            widgetFrame.setVisibility(mDisabledByAdmin ? View.VISIBLE : View.GONE);
-        }
-        if (restrictedIcon != null) {
-            restrictedIcon.setVisibility(mDisabledByAdmin ? View.VISIBLE : View.GONE);
-        }
-        if (summaryView != null && mDisabledByAdmin) {
-            summaryView.setText(com.android.settingslib.R.string.disabled_by_admin_summary_text);
-            summaryView.setVisibility(View.VISIBLE);
-        }
-
-        if (mDisabledByAdmin) {
-            view.setEnabled(true);
-        }
-    }
-
-    @Override
-    public void setEnabled(boolean enabled) {
-        if (enabled && mDisabledByAdmin) {
-            setDisabledByAdmin(null);
-            return;
-        }
-        super.setEnabled(enabled);
-    }
-
-    /**
-     * Disable this preference based on the enforce admin.
-     *
-     * @param admin Details of the admin who enforced the restriction. If it is {@code null}, then
-     * this preference will be enabled. Otherwise, it will be disabled.
-     */
-    public void setDisabledByAdmin(EnforcedAdmin admin) {
-        final boolean disabled = admin != null;
-        mEnforcedAdmin = admin;
-        boolean changed = false;
-        if (mDisabledByAdmin != disabled) {
-            mDisabledByAdmin = disabled;
-            changed = true;
-        }
-        setEnabled(!disabled);
-        if (changed) {
-            notifyChanged();
-        }
-    }
-}
diff --git a/src/com/android/phone/RestrictedSwitchPreference.java b/src/com/android/phone/RestrictedSwitchPreference.java
deleted file mode 100644
index ba6b65e..0000000
--- a/src/com/android/phone/RestrictedSwitchPreference.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2016 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.UserHandle;
-import android.os.UserManager;
-import android.preference.PreferenceScreen;
-import android.preference.SwitchPreference;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.TextView;
-
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-public class RestrictedSwitchPreference extends SwitchPreference {
-    private final Context mContext;
-    private boolean mDisabledByAdmin;
-    private final int mSwitchWidgetResId;
-
-    public RestrictedSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr,
-            int defStyleRes) {
-        super(context, attrs, defStyleAttr, defStyleRes);
-        mSwitchWidgetResId = getWidgetLayoutResource();
-        mContext = context;
-    }
-
-    public RestrictedSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
-        this(context, attrs, defStyleAttr, 0);
-    }
-
-    public RestrictedSwitchPreference(Context context, AttributeSet attrs) {
-        this(context, attrs, com.android.internal.R.attr.switchPreferenceStyle);
-    }
-
-    public RestrictedSwitchPreference(Context context) {
-        this(context, null);
-    }
-
-    @Override
-    public void onBindView(View view) {
-        super.onBindView(view);
-        if (mDisabledByAdmin) {
-            view.setEnabled(true);
-        }
-        final TextView summaryView = (TextView) view.findViewById(android.R.id.summary);
-        if (summaryView != null && mDisabledByAdmin) {
-            summaryView.setText(
-                    isChecked() ? R.string.enabled_by_admin : R.string.disabled_by_admin);
-            summaryView.setVisibility(View.VISIBLE);
-        }
-    }
-
-    public void checkRestrictionAndSetDisabled(String userRestriction) {
-        UserManager um = UserManager.get(mContext);
-        UserHandle user = UserHandle.of(um.getUserHandle());
-        boolean disabledByAdmin = um.hasUserRestriction(userRestriction, user)
-                && !um.hasBaseUserRestriction(userRestriction, user);
-        setDisabledByAdmin(disabledByAdmin);
-    }
-
-    @Override
-    public void setEnabled(boolean enabled) {
-        if (enabled && mDisabledByAdmin) {
-            setDisabledByAdmin(false);
-        } else {
-            super.setEnabled(enabled);
-        }
-    }
-
-    public void setDisabledByAdmin(boolean disabled) {
-        if (mDisabledByAdmin != disabled) {
-            mDisabledByAdmin = disabled;
-            setWidgetLayoutResource(disabled ? R.layout.restricted_icon : mSwitchWidgetResId);
-            setEnabled(!disabled);
-        }
-    }
-
-    @Override
-    public void performClick(PreferenceScreen preferenceScreen) {
-        if (mDisabledByAdmin) {
-            RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext,
-                    new EnforcedAdmin());
-        } else {
-            super.performClick(preferenceScreen);
-        }
-    }
-}
diff --git a/src/com/android/phone/RoamingDialogFragment.java b/src/com/android/phone/RoamingDialogFragment.java
deleted file mode 100644
index 384a120..0000000
--- a/src/com/android/phone/RoamingDialogFragment.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2016 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.DialogFragment;
-import android.app.Fragment;
-import android.app.FragmentManager;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
-import android.os.Bundle;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-
-/**
- * A dialog fragment that asks the user if they are sure they want to turn on data roaming
- * to avoid accidental charges.
- */
-public class RoamingDialogFragment extends DialogFragment implements OnClickListener {
-
-    public static final String SUB_ID_KEY = "sub_id_key";
-
-    private CarrierConfigManager mCarrierConfigManager;
-    private int mSubId;
-
-    /**
-     * The interface we expect a host activity to implement.
-     */
-    public interface RoamingDialogListener {
-        void onPositiveButtonClick(DialogFragment dialog);
-    }
-
-    // the host activity which implements the listening interface
-    private RoamingDialogListener mListener;
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-        Bundle args = getArguments();
-        mSubId = args.getInt(SUB_ID_KEY);
-        mCarrierConfigManager = new CarrierConfigManager(context);
-
-        // Verify host activity implemented callback interface
-        FragmentManager fragmentManager = getFragmentManager();
-        Fragment fragment = fragmentManager.findFragmentById(R.id.network_setting_content);
-        try {
-            mListener = (RoamingDialogListener) fragment;
-        } catch (ClassCastException e) {
-            throw new ClassCastException(fragment.toString() +
-                    "must implement RoamingDialogListener");
-        }
-    }
-
-    @Override
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
-        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
-        int title = R.string.roaming_alert_title;
-        PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-        if (carrierConfig != null && carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_CHECK_PRICING_WITH_CARRIER_FOR_DATA_ROAMING_BOOL)) {
-            title = R.string.roaming_check_price_warning;
-        }
-        builder.setMessage(getResources().getString(R.string.roaming_warning))
-                .setTitle(title)
-                .setIconAttribute(android.R.attr.alertDialogIcon)
-                .setPositiveButton(android.R.string.yes, this)
-                .setNegativeButton(android.R.string.no, this);
-        return builder.create();
-    }
-
-    @Override
-    public void onClick(DialogInterface dialog, int which) {
-        // let the host know that the positive button has been clicked
-        if (which == dialog.BUTTON_POSITIVE) {
-            mListener.onPositiveButtonClick(this);
-        }
-    }
-}
diff --git a/src/com/android/phone/ServiceStateProvider.java b/src/com/android/phone/ServiceStateProvider.java
new file mode 100644
index 0000000..a7d27d5
--- /dev/null
+++ b/src/com/android/phone/ServiceStateProvider.java
@@ -0,0 +1,566 @@
+/*
+ * Copyright (C) 2019 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.provider.Telephony.ServiceStateTable;
+import static android.provider.Telephony.ServiceStateTable.CONTENT_URI;
+import static android.provider.Telephony.ServiceStateTable.IS_MANUAL_NETWORK_SELECTION;
+import static android.provider.Telephony.ServiceStateTable.VOICE_REG_STATE;
+import static android.provider.Telephony.ServiceStateTable.getUriForSubscriptionId;
+import static android.provider.Telephony.ServiceStateTable.getUriForSubscriptionIdAndField;
+
+import android.content.ContentProvider;
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.database.MatrixCursor.RowBuilder;
+import android.net.Uri;
+import android.os.Parcel;
+import android.telephony.ServiceState;
+import android.telephony.SubscriptionManager;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * The class to provide base facility to access ServiceState related content,
+ * which is stored in a SQLite database.
+ */
+public class ServiceStateProvider extends ContentProvider {
+    private static final String TAG = "ServiceStateProvider";
+
+    public static final String AUTHORITY = ServiceStateTable.AUTHORITY;
+    public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
+
+    /**
+     * The current service state.
+     *
+     * This is the entire {@link ServiceState} object in byte array.
+     *
+     * @hide
+     */
+    public static final String SERVICE_STATE = "service_state";
+
+    /**
+     * An integer value indicating the current data service state.
+     * <p>
+     * Valid values: {@link ServiceState#STATE_IN_SERVICE},
+     * {@link ServiceState#STATE_OUT_OF_SERVICE}, {@link ServiceState#STATE_EMERGENCY_ONLY},
+     * {@link ServiceState#STATE_POWER_OFF}.
+     * <p>
+     * This is the same as {@link ServiceState#getDataRegState()}.
+     * @hide
+     */
+    public static final String DATA_REG_STATE = "data_reg_state";
+
+    /**
+     * An integer value indicating the current voice roaming type.
+     * <p>
+     * This is the same as {@link ServiceState#getVoiceRoamingType()}.
+     * @hide
+     */
+    public static final String VOICE_ROAMING_TYPE = "voice_roaming_type";
+
+    /**
+     * An integer value indicating the current data roaming type.
+     * <p>
+     * This is the same as {@link ServiceState#getDataRoamingType()}.
+     * @hide
+     */
+    public static final String DATA_ROAMING_TYPE = "data_roaming_type";
+
+    /**
+     * The current registered voice network operator name in long alphanumeric format.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorAlphaLong()}.
+     * @hide
+     */
+    public static final String VOICE_OPERATOR_ALPHA_LONG = "voice_operator_alpha_long";
+
+    /**
+     * The current registered operator name in short alphanumeric format.
+     * <p>
+     * In GSM/UMTS, short format can be up to 8 characters long. The current registered voice
+     * network operator name in long alphanumeric format.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorAlphaShort()}.
+     * @hide
+     */
+    public static final String VOICE_OPERATOR_ALPHA_SHORT = "voice_operator_alpha_short";
+
+    /**
+     * The current registered operator numeric id.
+     * <p>
+     * In GSM/UMTS, numeric format is 3 digit country code plus 2 or 3 digit
+     * network code.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorNumeric()}.
+     */
+    public static final String VOICE_OPERATOR_NUMERIC = "voice_operator_numeric";
+
+    /**
+     * The current registered data network operator name in long alphanumeric format.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorAlphaLong()}.
+     * @hide
+     */
+    public static final String DATA_OPERATOR_ALPHA_LONG = "data_operator_alpha_long";
+
+    /**
+     * The current registered data network operator name in short alphanumeric format.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorAlphaShort()}.
+     * @hide
+     */
+    public static final String DATA_OPERATOR_ALPHA_SHORT = "data_operator_alpha_short";
+
+    /**
+     * The current registered data network operator numeric id.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorNumeric()}.
+     * @hide
+     */
+    public static final String DATA_OPERATOR_NUMERIC = "data_operator_numeric";
+
+    /**
+     * This is the same as {@link ServiceState#getRilVoiceRadioTechnology()}.
+     * @hide
+     */
+    public static final String RIL_VOICE_RADIO_TECHNOLOGY = "ril_voice_radio_technology";
+
+    /**
+     * This is the same as {@link ServiceState#getRilDataRadioTechnology()}.
+     * @hide
+     */
+    public static final String RIL_DATA_RADIO_TECHNOLOGY = "ril_data_radio_technology";
+
+    /**
+     * This is the same as {@link ServiceState#getCssIndicator()}.
+     * @hide
+     */
+    public static final String CSS_INDICATOR = "css_indicator";
+
+    /**
+     * This is the same as {@link ServiceState#getCdmaNetworkId()}.
+     * @hide
+     */
+    public static final String NETWORK_ID = "network_id";
+
+    /**
+     * This is the same as {@link ServiceState#getCdmaSystemId()}.
+     * @hide
+     */
+    public static final String SYSTEM_ID = "system_id";
+
+    /**
+     * This is the same as {@link ServiceState#getCdmaRoamingIndicator()}.
+     * @hide
+     */
+    public static final String CDMA_ROAMING_INDICATOR = "cdma_roaming_indicator";
+
+    /**
+     * This is the same as {@link ServiceState#getCdmaDefaultRoamingIndicator()}.
+     * @hide
+     */
+    public static final String CDMA_DEFAULT_ROAMING_INDICATOR =
+            "cdma_default_roaming_indicator";
+
+    /**
+     * This is the same as {@link ServiceState#getCdmaEriIconIndex()}.
+     * @hide
+     */
+    public static final String CDMA_ERI_ICON_INDEX = "cdma_eri_icon_index";
+
+    /**
+     * This is the same as {@link ServiceState#getCdmaEriIconMode()}.
+     * @hide
+     */
+    public static final String CDMA_ERI_ICON_MODE = "cdma_eri_icon_mode";
+
+    /**
+     * This is the same as {@link ServiceState#isEmergencyOnly()}.
+     * @hide
+     */
+    public static final String IS_EMERGENCY_ONLY = "is_emergency_only";
+
+    /**
+     * This is the same as {@link ServiceState#getDataRoamingFromRegistration()}.
+     * @hide
+     */
+    public static final String IS_DATA_ROAMING_FROM_REGISTRATION =
+            "is_data_roaming_from_registration";
+
+    /**
+     * This is the same as {@link ServiceState#isUsingCarrierAggregation()}.
+     * @hide
+     */
+    public static final String IS_USING_CARRIER_AGGREGATION = "is_using_carrier_aggregation";
+
+    /**
+     * The current registered raw data network operator name in long alphanumeric format.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorAlphaLongRaw()}.
+     * @hide
+     */
+    public static final String OPERATOR_ALPHA_LONG_RAW = "operator_alpha_long_raw";
+
+    /**
+     * The current registered raw data network operator name in short alphanumeric format.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorAlphaShortRaw()}.
+     * @hide
+     */
+    public static final String OPERATOR_ALPHA_SHORT_RAW = "operator_alpha_short_raw";
+
+    private final HashMap<Integer, ServiceState> mServiceStates = new HashMap<>();
+    private static final String[] sColumns = {
+        VOICE_REG_STATE,
+        DATA_REG_STATE,
+        VOICE_ROAMING_TYPE,
+        DATA_ROAMING_TYPE,
+        VOICE_OPERATOR_ALPHA_LONG,
+        VOICE_OPERATOR_ALPHA_SHORT,
+        VOICE_OPERATOR_NUMERIC,
+        DATA_OPERATOR_ALPHA_LONG,
+        DATA_OPERATOR_ALPHA_SHORT,
+        DATA_OPERATOR_NUMERIC,
+        IS_MANUAL_NETWORK_SELECTION,
+        RIL_VOICE_RADIO_TECHNOLOGY,
+        RIL_DATA_RADIO_TECHNOLOGY,
+        CSS_INDICATOR,
+        NETWORK_ID,
+        SYSTEM_ID,
+        CDMA_ROAMING_INDICATOR,
+        CDMA_DEFAULT_ROAMING_INDICATOR,
+        CDMA_ERI_ICON_INDEX,
+        CDMA_ERI_ICON_MODE,
+        IS_EMERGENCY_ONLY,
+        IS_USING_CARRIER_AGGREGATION,
+        OPERATOR_ALPHA_LONG_RAW,
+        OPERATOR_ALPHA_SHORT_RAW,
+    };
+
+    @Override
+    public boolean onCreate() {
+        return true;
+    }
+
+    /**
+     * Returns the {@link ServiceState} information on specified subscription.
+     *
+     * @param subId whose subscriber id is returned
+     * @return the {@link ServiceState} information on specified subscription.
+     */
+    @VisibleForTesting
+    public ServiceState getServiceState(int subId) {
+        return mServiceStates.get(subId);
+    }
+
+    /**
+     * Returns the system's default subscription id.
+     *
+     * @return the "system" default subscription id.
+     */
+    @VisibleForTesting
+    public int getDefaultSubId() {
+        return SubscriptionManager.getDefaultSubscriptionId();
+    }
+
+    @Override
+    public Uri insert(Uri uri, ContentValues values) {
+        if (isPathPrefixMatch(uri, CONTENT_URI)) {
+            // Parse the subId
+            int subId = 0;
+            try {
+                subId = Integer.parseInt(uri.getLastPathSegment());
+            } catch (NumberFormatException e) {
+                Log.e(TAG, "insert: no subId provided in uri");
+                throw e;
+            }
+            Log.d(TAG, "subId=" + subId);
+
+            // handle DEFAULT_SUBSCRIPTION_ID
+            if (subId == SubscriptionManager.DEFAULT_SUBSCRIPTION_ID) {
+                subId = getDefaultSubId();
+            }
+
+            final Parcel p = Parcel.obtain();
+            final byte[] rawBytes = values.getAsByteArray(SERVICE_STATE);
+            p.unmarshall(rawBytes, 0, rawBytes.length);
+            p.setDataPosition(0);
+
+            // create the new service state
+            final ServiceState newSS = ServiceState.CREATOR.createFromParcel(p);
+
+            // notify listeners
+            // if ss is null (e.g. first service state update) we will notify for all fields
+            ServiceState ss = getServiceState(subId);
+            notifyChangeForSubIdAndField(getContext(), ss, newSS, subId);
+            notifyChangeForSubId(getContext(), ss, newSS, subId);
+
+            // store the new service state
+            mServiceStates.put(subId, newSS);
+            return uri;
+        }
+        return null;
+    }
+
+    @Override
+    public int delete(Uri uri, String selection, String[] selectionArgs) {
+        throw new RuntimeException("Not supported");
+    }
+
+    @Override
+    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
+        throw new RuntimeException("Not supported");
+    }
+
+    @Override
+    public String getType(Uri uri) {
+        throw new RuntimeException("Not supported");
+    }
+
+    @Override
+    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
+            String sortOrder) {
+        if (!isPathPrefixMatch(uri, CONTENT_URI)) {
+            throw new IllegalArgumentException("Invalid URI: " + uri);
+        } else {
+            // Parse the subId
+            int subId = 0;
+            try {
+                subId = Integer.parseInt(uri.getLastPathSegment());
+            } catch (NumberFormatException e) {
+                Log.d(TAG, "query: no subId provided in uri, using default.");
+                subId = getDefaultSubId();
+            }
+            Log.d(TAG, "subId=" + subId);
+
+            // handle DEFAULT_SUBSCRIPTION_ID
+            if (subId == SubscriptionManager.DEFAULT_SUBSCRIPTION_ID) {
+                subId = getDefaultSubId();
+            }
+
+            // Get the service state
+            ServiceState ss = getServiceState(subId);
+            if (ss == null) {
+                Log.d(TAG, "returning null");
+                return null;
+            }
+
+            // Build the result
+            final int voice_reg_state = ss.getState();
+            final int data_reg_state = ss.getDataRegistrationState();
+            final int voice_roaming_type = ss.getVoiceRoamingType();
+            final int data_roaming_type = ss.getDataRoamingType();
+            final String voice_operator_alpha_long = ss.getOperatorAlphaLong();
+            final String voice_operator_alpha_short = ss.getOperatorAlphaShort();
+            final String voice_operator_numeric = ss.getOperatorNumeric();
+            final String data_operator_alpha_long = ss.getOperatorAlphaLong();
+            final String data_operator_alpha_short = ss.getOperatorAlphaShort();
+            final String data_operator_numeric = ss.getOperatorNumeric();
+            final int is_manual_network_selection = (ss.getIsManualSelection()) ? 1 : 0;
+            final int ril_voice_radio_technology = ss.getRilVoiceRadioTechnology();
+            final int ril_data_radio_technology = ss.getRilDataRadioTechnology();
+            final int css_indicator = ss.getCssIndicator();
+            final int network_id = ss.getCdmaNetworkId();
+            final int system_id = ss.getCdmaSystemId();
+            final int cdma_roaming_indicator = ss.getCdmaRoamingIndicator();
+            final int cdma_default_roaming_indicator = ss.getCdmaDefaultRoamingIndicator();
+            final int cdma_eri_icon_index = ss.getCdmaEriIconIndex();
+            final int cdma_eri_icon_mode = ss.getCdmaEriIconMode();
+            final int is_emergency_only = (ss.isEmergencyOnly()) ? 1 : 0;
+            final int is_using_carrier_aggregation = (ss.isUsingCarrierAggregation()) ? 1 : 0;
+            final String operator_alpha_long_raw = ss.getOperatorAlphaLongRaw();
+            final String operator_alpha_short_raw = ss.getOperatorAlphaShortRaw();
+
+            return buildSingleRowResult(projection, sColumns, new Object[] {
+                    voice_reg_state,
+                    data_reg_state,
+                    voice_roaming_type,
+                    data_roaming_type,
+                    voice_operator_alpha_long,
+                    voice_operator_alpha_short,
+                    voice_operator_numeric,
+                    data_operator_alpha_long,
+                    data_operator_alpha_short,
+                    data_operator_numeric,
+                    is_manual_network_selection,
+                    ril_voice_radio_technology,
+                    ril_data_radio_technology,
+                    css_indicator,
+                    network_id,
+                    system_id,
+                    cdma_roaming_indicator,
+                    cdma_default_roaming_indicator,
+                    cdma_eri_icon_index,
+                    cdma_eri_icon_mode,
+                    is_emergency_only,
+                    is_using_carrier_aggregation,
+                    operator_alpha_long_raw,
+                    operator_alpha_short_raw,
+            });
+        }
+    }
+
+    private static Cursor buildSingleRowResult(String[] projection, String[] availableColumns,
+            Object[] data) {
+        if (projection == null) {
+            projection = availableColumns;
+        }
+        final MatrixCursor c = new MatrixCursor(projection, 1);
+        final RowBuilder row = c.newRow();
+        for (int i = 0; i < c.getColumnCount(); i++) {
+            final String columnName = c.getColumnName(i);
+            boolean found = false;
+            for (int j = 0; j < availableColumns.length; j++) {
+                if (availableColumns[j].equals(columnName)) {
+                    row.add(data[j]);
+                    found = true;
+                    break;
+                }
+            }
+            if (!found) {
+                throw new IllegalArgumentException("Invalid column " + projection[i]);
+            }
+        }
+        return c;
+    }
+
+    /**
+     * Notify interested apps that certain fields of the ServiceState have changed.
+     *
+     * Apps which want to wake when specific fields change can use
+     * JobScheduler's TriggerContentUri.  This replaces the waking functionality of the implicit
+     * broadcast of ACTION_SERVICE_STATE_CHANGED for apps targeting version O.
+     *
+     * We will only notify for certain fields. This is an intentional change from the behavior of
+     * the broadcast. Listeners will be notified when the voice or data registration state or
+     * roaming type changes.
+     */
+    @VisibleForTesting
+    public static void notifyChangeForSubIdAndField(Context context, ServiceState oldSS,
+            ServiceState newSS, int subId) {
+        final boolean firstUpdate = (oldSS == null) ? true : false;
+
+        // for every field, if the field has changed values, notify via the provider
+        if (firstUpdate || voiceRegStateChanged(oldSS, newSS)) {
+            context.getContentResolver().notifyChange(
+                    getUriForSubscriptionIdAndField(subId, VOICE_REG_STATE),
+                    /* observer= */ null, /* syncToNetwork= */ false);
+        }
+        if (firstUpdate || dataRegStateChanged(oldSS, newSS)) {
+            context.getContentResolver().notifyChange(
+                    getUriForSubscriptionIdAndField(subId, DATA_REG_STATE), null, false);
+        }
+        if (firstUpdate || voiceRoamingTypeChanged(oldSS, newSS)) {
+            context.getContentResolver().notifyChange(
+                    getUriForSubscriptionIdAndField(subId, VOICE_ROAMING_TYPE), null, false);
+        }
+        if (firstUpdate || dataRoamingTypeChanged(oldSS, newSS)) {
+            context.getContentResolver().notifyChange(
+                    getUriForSubscriptionIdAndField(subId, DATA_ROAMING_TYPE), null, false);
+        }
+    }
+
+    private static boolean voiceRegStateChanged(ServiceState oldSS, ServiceState newSS) {
+        return oldSS.getState() != newSS.getState();
+    }
+
+    private static boolean dataRegStateChanged(ServiceState oldSS, ServiceState newSS) {
+        return oldSS.getDataRegistrationState() != newSS.getDataRegistrationState();
+    }
+
+    private static boolean voiceRoamingTypeChanged(ServiceState oldSS, ServiceState newSS) {
+        return oldSS.getVoiceRoamingType() != newSS.getVoiceRoamingType();
+    }
+
+    private static boolean dataRoamingTypeChanged(ServiceState oldSS, ServiceState newSS) {
+        return oldSS.getDataRoamingType() != newSS.getDataRoamingType();
+    }
+
+    /**
+     * Notify interested apps that the ServiceState has changed.
+     *
+     * Apps which want to wake when any field in the ServiceState has changed can use
+     * JobScheduler's TriggerContentUri.  This replaces the waking functionality of the implicit
+     * broadcast of ACTION_SERVICE_STATE_CHANGED for apps targeting version O.
+     *
+     * We will only notify for certain fields. This is an intentional change from the behavior of
+     * the broadcast. Listeners will only be notified when the voice/data registration state or
+     * roaming type changes.
+     */
+    @VisibleForTesting
+    public static void notifyChangeForSubId(Context context, ServiceState oldSS, ServiceState newSS,
+            int subId) {
+        // if the voice or data registration or roaming state field has changed values, notify via
+        // the provider.
+        // If oldSS is null and newSS is not (e.g. first update of service state) this will also
+        // notify
+        if (oldSS == null || voiceRegStateChanged(oldSS, newSS) || dataRegStateChanged(oldSS, newSS)
+                || voiceRoamingTypeChanged(oldSS, newSS) || dataRoamingTypeChanged(oldSS, newSS)) {
+            context.getContentResolver().notifyChange(getUriForSubscriptionId(subId), null, false);
+        }
+    }
+
+    /**
+     * Test if this is a path prefix match against the given Uri. Verifies that
+     * scheme, authority, and atomic path segments match.
+     *
+     * Copied from frameworks/base/core/java/android/net/Uri.java
+     */
+    private boolean isPathPrefixMatch(Uri uriA, Uri uriB) {
+        if (!Objects.equals(uriA.getScheme(), uriB.getScheme())) return false;
+        if (!Objects.equals(uriA.getAuthority(), uriB.getAuthority())) return false;
+
+        List<String> segA = uriA.getPathSegments();
+        List<String> segB = uriB.getPathSegments();
+
+        final int size = segB.size();
+        if (segA.size() < size) return false;
+
+        for (int i = 0; i < size; i++) {
+            if (!Objects.equals(segA.get(i), segB.get(i))) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Used to insert a ServiceState into the ServiceStateProvider as a ContentValues instance.
+     *
+     * @param state the ServiceState to convert into ContentValues
+     * @return the convertedContentValues instance
+     * @hide
+     */
+    public static ContentValues getContentValuesForServiceState(ServiceState state) {
+        ContentValues values = new ContentValues();
+        final Parcel p = Parcel.obtain();
+        state.writeToParcel(p, 0);
+        // Turn the parcel to byte array. Safe to do this because the content values were never
+        // written into a persistent storage. ServiceStateProvider keeps values in the memory.
+        values.put(SERVICE_STATE, p.marshall());
+        return values;
+    }
+}
diff --git a/src/com/android/phone/ShortcutViewUtils.java b/src/com/android/phone/ShortcutViewUtils.java
index 47ca5ee..e3c5b64 100644
--- a/src/com/android/phone/ShortcutViewUtils.java
+++ b/src/com/android/phone/ShortcutViewUtils.java
@@ -33,7 +33,7 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
-import com.android.internal.util.ArrayUtils;
+import com.android.internal.telephony.util.ArrayUtils;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/com/android/phone/SpecialCharSequenceMgr.java b/src/com/android/phone/SpecialCharSequenceMgr.java
index 514b2c9..674449e 100644
--- a/src/com/android/phone/SpecialCharSequenceMgr.java
+++ b/src/com/android/phone/SpecialCharSequenceMgr.java
@@ -21,6 +21,7 @@
 import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
+import android.os.UserManager;
 import android.provider.Settings;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.SubscriptionInfo;
@@ -233,32 +234,45 @@
         // if a dialstring is an MMI code.
         if ((input.startsWith("**04") || input.startsWith("**05"))
                 && input.endsWith("#")) {
-            PhoneGlobals app = PhoneGlobals.getInstance();
-            Phone phone;
-            int subId;
-            if (input.startsWith("**04")) {
-                subId = getNextSubIdForState(IccCardConstants.State.PIN_REQUIRED, context);
-            } else {
-                subId = getNextSubIdForState(IccCardConstants.State.PUK_REQUIRED, context);
-            }
-            if (SubscriptionManager.isValidSubscriptionId(subId)) {
-                log("get phone with subId: " + subId);
-                phone = PhoneGlobals.getPhone(subId);
-            } else {
-                log("get default phone");
-                phone = PhoneGlobals.getPhone();
-            }
-            boolean isMMIHandled = phone.handlePinMmi(input);
+            UserManager userManager = (UserManager) pukInputActivity
+                       .getSystemService(Context.USER_SERVICE);
+            if (userManager.isSystemUser()) {
+                PhoneGlobals app = PhoneGlobals.getInstance();
+                Phone phone;
+                int subId;
+                if (input.startsWith("**04")) {
+                    subId = getNextSubIdForState(IccCardConstants.State.PIN_REQUIRED, context);
+                } else {
+                    subId = getNextSubIdForState(IccCardConstants.State.PUK_REQUIRED, context);
+                }
+                if (SubscriptionManager.isValidSubscriptionId(subId)) {
+                    log("get phone with subId: " + subId);
+                    phone = PhoneGlobals.getPhone(subId);
+                } else {
+                    log("get default phone");
+                    phone = PhoneGlobals.getPhone();
+                }
+                boolean isMMIHandled = 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);
+                // 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;
+            } else {
+                AlertDialog dialog = new AlertDialog.Builder(context)
+                        .setMessage(R.string.pin_puk_system_user_only)
+                        .setPositiveButton(R.string.ok, null)
+                        .setCancelable(true).create();
+                dialog.show();
+                dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
+                dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
+                return true;
             }
-            return isMMIHandled;
         }
         return false;
     }
diff --git a/src/com/android/phone/TelephonyShellCommand.java b/src/com/android/phone/TelephonyShellCommand.java
index a59c9c4..0348389 100644
--- a/src/com/android/phone/TelephonyShellCommand.java
+++ b/src/com/android/phone/TelephonyShellCommand.java
@@ -16,20 +16,29 @@
 
 package com.android.phone;
 
+import android.content.Context;
+import android.os.BasicShellCommandHandler;
 import android.os.Binder;
+import android.os.PersistableBundle;
 import android.os.Process;
 import android.os.RemoteException;
-import android.os.ShellCommand;
-import android.os.UserHandle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.emergency.EmergencyNumber;
+import android.telephony.ims.feature.ImsFeature;
 import android.util.Log;
 
 import com.android.internal.telephony.ITelephony;
 import com.android.internal.telephony.emergency.EmergencyNumberTracker;
+import com.android.internal.telephony.util.TelephonyUtils;
 
 import java.io.PrintWriter;
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeSet;
 
 /**
  * Takes actions based on the adb commands given by "adb shell cmd phone ...". Be careful, no
@@ -37,7 +46,7 @@
  * here also contain the appropriate permissions checks.
  */
 
-public class TelephonyShellCommand extends ShellCommand {
+public class TelephonyShellCommand extends BasicShellCommandHandler {
 
     private static final String LOG_TAG = "TelephonyShellCommand";
     // Don't commit with this true.
@@ -45,27 +54,84 @@
     private static final int DEFAULT_PHONE_ID = 0;
 
     private static final String IMS_SUBCOMMAND = "ims";
-    private static final String SMS_SUBCOMMAND = "sms";
     private static final String NUMBER_VERIFICATION_SUBCOMMAND = "numverify";
     private static final String EMERGENCY_NUMBER_TEST_MODE = "emergency-number-test-mode";
+    private static final String CARRIER_CONFIG_SUBCOMMAND = "cc";
+    private static final String DATA_TEST_MODE = "data";
+    private static final String DATA_ENABLE = "enable";
+    private static final String DATA_DISABLE = "disable";
 
     private static final String IMS_SET_CARRIER_SERVICE = "set-ims-service";
     private static final String IMS_GET_CARRIER_SERVICE = "get-ims-service";
     private static final String IMS_ENABLE = "enable";
     private static final String IMS_DISABLE = "disable";
-
-    private static final String SMS_GET_APPS = "get-apps";
-    private static final String SMS_GET_DEFAULT_APP = "get-default-app";
-    private static final String SMS_SET_DEFAULT_APP = "set-default-app";
+    // Used to disable or enable processing of conference event package data from the network.
+    // This is handy for testing scenarios where CEP data does not exist on a network which does
+    // support CEP data.
+    private static final String IMS_CEP = "conference-event-package";
 
     private static final String NUMBER_VERIFICATION_OVERRIDE_PACKAGE = "override-package";
     private static final String NUMBER_VERIFICATION_FAKE_CALL = "fake-call";
 
+    private static final String CC_GET_VALUE = "get-value";
+    private static final String CC_SET_VALUE = "set-value";
+    private static final String CC_CLEAR_VALUES = "clear-values";
+
     // Take advantage of existing methods that already contain permissions checks when possible.
     private final ITelephony mInterface;
 
-    public TelephonyShellCommand(ITelephony binder) {
+    private SubscriptionManager mSubscriptionManager;
+    private CarrierConfigManager mCarrierConfigManager;
+
+    private enum CcType {
+        BOOLEAN, DOUBLE, DOUBLE_ARRAY, INT, INT_ARRAY, LONG, LONG_ARRAY, STRING,
+                STRING_ARRAY, UNKNOWN
+    }
+
+    private class CcOptionParseResult {
+        public int mSubId;
+        public boolean mPersistent;
+    }
+
+    // Maps carrier config keys to type. It is possible to infer the type for most carrier config
+    // keys by looking at the end of the string which usually tells the type.
+    // For instance: "xxxx_string", "xxxx_string_array", etc.
+    // The carrier config keys in this map does not follow this convention. It is therefore not
+    // possible to infer the type for these keys by looking at the string.
+    private static final Map<String, CcType> CC_TYPE_MAP = new HashMap<String, CcType>() {{
+            put(CarrierConfigManager.Gps.KEY_A_GLONASS_POS_PROTOCOL_SELECT_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_GPS_LOCK_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_LPP_PROFILE_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_NFW_PROXY_APPS_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_SUPL_ES_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_SUPL_HOST_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_SUPL_MODE_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_SUPL_PORT_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_SUPL_VER_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL_STRING,
+                    CcType.STRING);
+            put(CarrierConfigManager.KEY_CARRIER_APP_NO_WAKE_SIGNAL_CONFIG_STRING_ARRAY,
+                    CcType.STRING_ARRAY);
+            put(CarrierConfigManager.KEY_CARRIER_APP_WAKE_SIGNAL_CONFIG_STRING_ARRAY,
+                    CcType.STRING_ARRAY);
+            put(CarrierConfigManager.KEY_CARRIER_CALL_SCREENING_APP_STRING, CcType.STRING);
+            put(CarrierConfigManager.KEY_MMS_EMAIL_GATEWAY_NUMBER_STRING, CcType.STRING);
+            put(CarrierConfigManager.KEY_MMS_HTTP_PARAMS_STRING, CcType.STRING);
+            put(CarrierConfigManager.KEY_MMS_NAI_SUFFIX_STRING, CcType.STRING);
+            put(CarrierConfigManager.KEY_MMS_UA_PROF_TAG_NAME_STRING, CcType.STRING);
+            put(CarrierConfigManager.KEY_MMS_UA_PROF_URL_STRING, CcType.STRING);
+            put(CarrierConfigManager.KEY_MMS_USER_AGENT_STRING, CcType.STRING);
+            put(CarrierConfigManager.KEY_RATCHET_RAT_FAMILIES, CcType.STRING_ARRAY);
+        }
+    };
+
+    public TelephonyShellCommand(ITelephony binder, Context context) {
         mInterface = binder;
+        mCarrierConfigManager =
+                (CarrierConfigManager) context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
+        mSubscriptionManager = (SubscriptionManager)
+                context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
     }
 
     @Override
@@ -78,13 +144,15 @@
             case IMS_SUBCOMMAND: {
                 return handleImsCommand();
             }
-            case SMS_SUBCOMMAND: {
-                return handleSmsCommand();
-            }
             case NUMBER_VERIFICATION_SUBCOMMAND:
                 return handleNumberVerificationCommand();
             case EMERGENCY_NUMBER_TEST_MODE:
                 return handleEmergencyNumberTestModeCommand();
+            case CARRIER_CONFIG_SUBCOMMAND: {
+                return handleCcCommand();
+            }
+            case DATA_TEST_MODE:
+                return handleDataTestModeCommand();
             default: {
                 return handleDefaultCommands(cmd);
             }
@@ -99,25 +167,30 @@
         pw.println("    Print this help text.");
         pw.println("  ims");
         pw.println("    IMS Commands.");
-        pw.println("  sms");
-        pw.println("    SMS Commands.");
         pw.println("  emergency-number-test-mode");
         pw.println("    Emergency Number Test Mode Commands.");
+        pw.println("  data");
+        pw.println("    Data Test Mode Commands.");
+        pw.println("  cc");
+        pw.println("    Carrier Config Commands.");
         onHelpIms();
-        onHelpSms();
         onHelpEmergencyNumber();
+        onHelpDataTestMode();
+        onHelpCc();
     }
 
     private void onHelpIms() {
         PrintWriter pw = getOutPrintWriter();
         pw.println("IMS Commands:");
-        pw.println("  ims set-ims-service [-s SLOT_ID] (-c | -d) PACKAGE_NAME");
+        pw.println("  ims set-ims-service [-s SLOT_ID] (-c | -d | -f) PACKAGE_NAME");
         pw.println("    Sets the ImsService defined in PACKAGE_NAME to to be the bound");
         pw.println("    ImsService. Options are:");
         pw.println("      -s: the slot ID that the ImsService should be bound for. If no option");
         pw.println("          is specified, it will choose the default voice SIM slot.");
         pw.println("      -c: Override the ImsService defined in the carrier configuration.");
         pw.println("      -d: Override the ImsService defined in the device overlay.");
+        pw.println("      -f: Set the feature that this override if for, if no option is");
+        pw.println("          specified, the new package name will be used for all features.");
         pw.println("  ims get-ims-service [-s SLOT_ID] [-c | -d]");
         pw.println("    Gets the package name of the currently defined ImsService.");
         pw.println("    Options are:");
@@ -125,26 +198,18 @@
         pw.println("          is specified, it will choose the default voice SIM slot.");
         pw.println("      -c: The ImsService defined as the carrier configured ImsService.");
         pw.println("      -c: The ImsService defined as the device default ImsService.");
+        pw.println("      -f: The feature type that the query will be requested for. If none is");
+        pw.println("          specified, the returned package name will correspond to MMTEL.");
         pw.println("  ims enable [-s SLOT_ID]");
         pw.println("    enables IMS for the SIM slot specified, or for the default voice SIM slot");
         pw.println("    if none is specified.");
         pw.println("  ims disable [-s SLOT_ID]");
         pw.println("    disables IMS for the SIM slot specified, or for the default voice SIM");
         pw.println("    slot if none is specified.");
+        pw.println("  ims conference-event-package [enable/disable]");
+        pw.println("    enables or disables handling or network conference event package data.");
     }
 
-    private void onHelpSms() {
-        PrintWriter pw = getOutPrintWriter();
-        pw.println("SMS Commands:");
-        pw.println("  sms get-apps [--user USER_ID]");
-        pw.println("    Print all SMS apps on a user.");
-        pw.println("  sms get-default-app [--user USER_ID]");
-        pw.println("    Get the default SMS app.");
-        pw.println("  sms set-default-app [--user USER_ID] PACKAGE_NAME");
-        pw.println("    Set PACKAGE_NAME as the default SMS app.");
-    }
-
-
     private void onHelpNumberVerification() {
         PrintWriter pw = getOutPrintWriter();
         pw.println("Number verification commands");
@@ -156,6 +221,13 @@
         pw.println("    1 if the call would have been intercepted, 0 otherwise.");
     }
 
+    private void onHelpDataTestMode() {
+        PrintWriter pw = getOutPrintWriter();
+        pw.println("Mobile Data Test Mode Commands:");
+        pw.println("  data enable: enable mobile data connectivity");
+        pw.println("  data disable: disable mobile data connectivity");
+    }
+
     private void onHelpEmergencyNumber() {
         PrintWriter pw = getOutPrintWriter();
         pw.println("Emergency Number Test Mode Commands:");
@@ -170,6 +242,34 @@
         pw.println("      -p: get the full emergency number list in the test mode.");
     }
 
+    private void onHelpCc() {
+        PrintWriter pw = getOutPrintWriter();
+        pw.println("Carrier Config Commands:");
+        pw.println("  cc get-value [-s SLOT_ID] [KEY]");
+        pw.println("    Print carrier config values.");
+        pw.println("    Options are:");
+        pw.println("      -s: The SIM slot ID to read carrier config value for. If no option");
+        pw.println("          is specified, it will choose the default voice SIM slot.");
+        pw.println("    KEY: The key to the carrier config value to print. All values are printed");
+        pw.println("         if KEY is not specified.");
+        pw.println("  cc set-value [-s SLOT_ID] [-p] KEY [NEW_VALUE]");
+        pw.println("    Set carrier config KEY to NEW_VALUE.");
+        pw.println("    Options are:");
+        pw.println("      -s: The SIM slot ID to set carrier config value for. If no option");
+        pw.println("          is specified, it will choose the default voice SIM slot.");
+        pw.println("      -p: Value will be stored persistent");
+        pw.println("    NEW_VALUE specifies the new value for carrier config KEY. Null will be");
+        pw.println("      used if NEW_VALUE is not set. Strings should be encapsulated with");
+        pw.println("      quotation marks. Spaces needs to be escaped. Example: \"Hello\\ World\"");
+        pw.println("      Separate items in arrays with space . Example: \"item1\" \"item2\"");
+        pw.println("  cc clear-values [-s SLOT_ID]");
+        pw.println("    Clear all carrier override values that has previously been set");
+        pw.println("    with set-value");
+        pw.println("    Options are:");
+        pw.println("      -s: The SIM slot ID to clear carrier config values for. If no option");
+        pw.println("          is specified, it will choose the default voice SIM slot.");
+    }
+
     private int handleImsCommand() {
         String arg = getNextArg();
         if (arg == null) {
@@ -190,11 +290,49 @@
             case IMS_DISABLE: {
                 return handleDisableIms();
             }
+            case IMS_CEP: {
+                return handleCepChange();
+            }
         }
 
         return -1;
     }
 
+    private int handleDataTestModeCommand() {
+        PrintWriter errPw = getErrPrintWriter();
+        String arg = getNextArgRequired();
+        if (arg == null) {
+            onHelpDataTestMode();
+            return 0;
+        }
+        switch (arg) {
+            case DATA_ENABLE: {
+                try {
+                    mInterface.enableDataConnectivity();
+                } catch (RemoteException ex) {
+                    Log.w(LOG_TAG, "data enable, error " + ex.getMessage());
+                    errPw.println("Exception: " + ex.getMessage());
+                    return -1;
+                }
+                break;
+            }
+            case DATA_DISABLE: {
+                try {
+                    mInterface.disableDataConnectivity();
+                } catch (RemoteException ex) {
+                    Log.w(LOG_TAG, "data disable, error " + ex.getMessage());
+                    errPw.println("Exception: " + ex.getMessage());
+                    return -1;
+                }
+                break;
+            }
+            default:
+                onHelpDataTestMode();
+                break;
+        }
+        return 0;
+    }
+
     private int handleEmergencyNumberTestModeCommand() {
         PrintWriter errPw = getErrPrintWriter();
         String opt = getNextOption();
@@ -312,6 +450,7 @@
         PrintWriter errPw = getErrPrintWriter();
         int slotId = getDefaultSlot();
         Boolean isCarrierService = null;
+        List<Integer> featuresList = new ArrayList<>();
 
         String opt;
         while ((opt = getNextOption()) != null) {
@@ -333,6 +472,26 @@
                     isCarrierService = false;
                     break;
                 }
+                case "-f": {
+                    String featureString = getNextArgRequired();
+                    String[] features = featureString.split(",");
+                    for (int i = 0; i < features.length; i++) {
+                        try {
+                            Integer result = Integer.parseInt(features[i]);
+                            if (result < ImsFeature.FEATURE_EMERGENCY_MMTEL
+                                    || result >= ImsFeature.FEATURE_MAX) {
+                                errPw.println("ims set-ims-service -f " + result
+                                        + " is an invalid feature.");
+                                return -1;
+                            }
+                            featuresList.add(result);
+                        } catch (NumberFormatException e) {
+                            errPw.println("ims set-ims-service -f tried to parse " + features[i]
+                                            + " as an integer.");
+                            return -1;
+                        }
+                    }
+                }
             }
         }
         // Mandatory param, either -c or -d
@@ -347,16 +506,24 @@
             if (packageName == null) {
                 packageName = "";
             }
-            boolean result = mInterface.setImsService(slotId, isCarrierService, packageName);
+            int[] featureArray = new int[featuresList.size()];
+            for (int i = 0; i < featuresList.size(); i++) {
+                featureArray[i] = featuresList.get(i);
+            }
+            boolean result = mInterface.setBoundImsServiceOverride(slotId, isCarrierService,
+                    featureArray, packageName);
             if (VDBG) {
                 Log.v(LOG_TAG, "ims set-ims-service -s " + slotId + " "
-                        + (isCarrierService ? "-c " : "-d ") + packageName + ", result=" + result);
+                        + (isCarrierService ? "-c " : "-d ")
+                        + "-f " + featuresList + " "
+                        + packageName + ", result=" + result);
             }
             getOutPrintWriter().println(result);
         } catch (RemoteException e) {
             Log.w(LOG_TAG, "ims set-ims-service -s " + slotId + " "
-                    + (isCarrierService ? "-c " : "-d ") + packageName + ", error"
-                    + e.getMessage());
+                    + (isCarrierService ? "-c " : "-d ")
+                    + "-f " + featuresList + " "
+                    + packageName + ", error" + e.getMessage());
             errPw.println("Exception: " + e.getMessage());
             return -1;
         }
@@ -368,6 +535,7 @@
         PrintWriter errPw = getErrPrintWriter();
         int slotId = getDefaultSlot();
         Boolean isCarrierService = null;
+        Integer featureType = ImsFeature.FEATURE_MMTEL;
 
         String opt;
         while ((opt = getNextOption()) != null) {
@@ -389,23 +557,38 @@
                     isCarrierService = false;
                     break;
                 }
+                case "-f": {
+                    try {
+                        featureType = Integer.parseInt(getNextArg());
+                    } catch (NumberFormatException e) {
+                        errPw.println("ims get-ims-service -f requires valid integer as feature.");
+                        return -1;
+                    }
+                    if (featureType < ImsFeature.FEATURE_EMERGENCY_MMTEL
+                            || featureType >= ImsFeature.FEATURE_MAX) {
+                        errPw.println("ims get-ims-service -f invalid feature.");
+                        return -1;
+                    }
+                }
             }
         }
         // Mandatory param, either -c or -d
         if (isCarrierService == null) {
-            errPw.println("ims set-ims-service requires either \"-c\" or \"-d\" to be set.");
+            errPw.println("ims get-ims-service requires either \"-c\" or \"-d\" to be set.");
             return -1;
         }
 
         String result;
         try {
-            result = mInterface.getImsService(slotId, isCarrierService);
+            result = mInterface.getBoundImsServicePackage(slotId, isCarrierService, featureType);
         } catch (RemoteException e) {
             return -1;
         }
         if (VDBG) {
             Log.v(LOG_TAG, "ims get-ims-service -s " + slotId + " "
-                    + (isCarrierService ? "-c " : "-d ") + ", returned: " + result);
+                    + (isCarrierService ? "-c " : "-d ")
+                    + (featureType != null ? ("-f " + featureType) : "") + " , returned: "
+                    + result);
         }
         getOutPrintWriter().println(result);
         return 0;
@@ -466,6 +649,22 @@
         return 0;
     }
 
+    private int handleCepChange() {
+        Log.i(LOG_TAG, "handleCepChange");
+        String opt = getNextArg();
+        if (opt == null) {
+            return -1;
+        }
+        boolean isCepEnabled = opt.equals("enable");
+
+        try {
+            mInterface.setCepEnabled(isCepEnabled);
+        } catch (RemoteException e) {
+            return -1;
+        }
+        return 0;
+    }
+
     private int getDefaultSlot() {
         int slotId = SubscriptionManager.getDefaultVoicePhoneId();
         if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX
@@ -476,85 +675,65 @@
         return slotId;
     }
 
-    private int handleSmsCommand() {
-        String arg = getNextArg();
-        if (arg == null) {
-            onHelpSms();
-            return 0;
-        }
+    // Parse options related to Carrier Config Commands.
+    private CcOptionParseResult parseCcOptions(String tag, boolean allowOptionPersistent) {
+        PrintWriter errPw = getErrPrintWriter();
+        CcOptionParseResult result = new CcOptionParseResult();
+        result.mSubId = SubscriptionManager.getDefaultSubscriptionId();
+        result.mPersistent = false;
 
-        try {
-            switch (arg) {
-                case SMS_GET_APPS: {
-                    return handleSmsGetApps();
-                }
-                case SMS_GET_DEFAULT_APP: {
-                    return handleSmsGetDefaultApp();
-                }
-                case SMS_SET_DEFAULT_APP: {
-                    return handleSmsSetDefaultApp();
-                }
-                default:
-                    getErrPrintWriter().println("Unknown command " + arg);
-            }
-        } catch (RemoteException e) {
-            getErrPrintWriter().println("RemoteException: " + e.getMessage());
-        }
-
-        return -1;
-    }
-
-    private int maybeParseUserIdArg() {
-        int userId = UserHandle.USER_SYSTEM;
         String opt;
         while ((opt = getNextOption()) != null) {
             switch (opt) {
-                case "--user": {
+                case "-s": {
                     try {
-                        userId = Integer.parseInt(getNextArgRequired());
-                    } catch (NumberFormatException e) {
-                        getErrPrintWriter().println("Invalid user ID for --user");
-                        return -1;
+                        result.mSubId = slotStringToSubId(tag, getNextArgRequired());
+                        if (!SubscriptionManager.isValidSubscriptionId(result.mSubId)) {
+                            errPw.println(tag + "No valid subscription found.");
+                            return null;
+                        }
+
+                    } catch (IllegalArgumentException e) {
+                        // Missing slot id
+                        errPw.println(tag + "SLOT_ID expected after -s.");
+                        return null;
                     }
                     break;
                 }
+                case "-p": {
+                    if (allowOptionPersistent) {
+                        result.mPersistent = true;
+                    } else {
+                        errPw.println(tag + "Unexpected option " + opt);
+                        return null;
+                    }
+                    break;
+                }
+                default: {
+                    errPw.println(tag + "Unknown option " + opt);
+                    return null;
+                }
             }
         }
-        return userId;
+        return result;
     }
 
-    private int handleSmsGetApps() throws RemoteException {
-        final int userId = maybeParseUserIdArg();
-        if (userId < 0) {
-            return -1;
+    private int slotStringToSubId(String tag, String slotString) {
+        int slotId = -1;
+        try {
+            slotId = Integer.parseInt(slotString);
+        } catch (NumberFormatException e) {
+            getErrPrintWriter().println(tag + slotString + " is not a valid SLOT_ID.");
+            return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
         }
 
-        for (String packageName : mInterface.getSmsApps(userId)) {
-            getOutPrintWriter().println(packageName);
+        SubscriptionInfo subInfo =
+                mSubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex(slotId);
+        if (subInfo == null) {
+            getErrPrintWriter().println(tag + "No subscription found in slot " + slotId + ".");
+            return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
         }
-        return 0;
-    }
-
-    private int handleSmsGetDefaultApp() throws RemoteException {
-        final int userId = maybeParseUserIdArg();
-        if (userId < 0) {
-            return -1;
-        }
-
-        getOutPrintWriter().println(mInterface.getDefaultSmsApp(userId));
-        return 0;
-    }
-
-    private int handleSmsSetDefaultApp() throws RemoteException {
-        final int userId = maybeParseUserIdArg();
-        if (userId < 0) {
-            return -1;
-        }
-
-        String packageName = getNextArgRequired();
-        mInterface.setDefaultSmsApp(userId, packageName);
-        getOutPrintWriter().println("SMS app set to " + mInterface.getDefaultSmsApp(userId));
-        return 0;
+        return subInfo.getSubscriptionId();
     }
 
     private boolean checkShellUid() {
@@ -562,4 +741,432 @@
         return Binder.getCallingUid() == Process.SHELL_UID
                 || Binder.getCallingUid() == Process.ROOT_UID;
     }
+
+    private int handleCcCommand() {
+        // Verify that the user is allowed to run the command. Only allowed in rooted device in a
+        // non user build.
+        if (Binder.getCallingUid() != Process.ROOT_UID || TelephonyUtils.IS_USER) {
+            getErrPrintWriter().println("cc: Permission denied.");
+            return -1;
+        }
+
+        String arg = getNextArg();
+        if (arg == null) {
+            onHelpCc();
+            return 0;
+        }
+
+        switch (arg) {
+            case CC_GET_VALUE: {
+                return handleCcGetValue();
+            }
+            case CC_SET_VALUE: {
+                return handleCcSetValue();
+            }
+            case CC_CLEAR_VALUES: {
+                return handleCcClearValues();
+            }
+            default: {
+                getErrPrintWriter().println("cc: Unknown argument: " + arg);
+            }
+        }
+        return -1;
+    }
+
+    // cc get-value
+    private int handleCcGetValue() {
+        PrintWriter errPw = getErrPrintWriter();
+        String tag = CARRIER_CONFIG_SUBCOMMAND + " " + CC_GET_VALUE + ": ";
+        String key = null;
+
+        // Parse all options
+        CcOptionParseResult options =  parseCcOptions(tag, false);
+        if (options == null) {
+            return -1;
+        }
+
+        // Get bundle containing all carrier configuration values.
+        PersistableBundle bundle = mCarrierConfigManager.getConfigForSubId(options.mSubId);
+        if (bundle == null) {
+            errPw.println(tag + "No carrier config values found for subId " + options.mSubId + ".");
+            return -1;
+        }
+
+        // Get the key.
+        key = getNextArg();
+        if (key != null) {
+            // A key was provided. Verify if it is a valid key
+            if (!bundle.containsKey(key)) {
+                errPw.println(tag + key + " is not a valid key.");
+                return -1;
+            }
+
+            // Print the carrier config value for key.
+            getOutPrintWriter().println(ccValueToString(key, getType(tag, key, bundle), bundle));
+        } else {
+            // No key provided. Show all values.
+            // Iterate over a sorted list of all carrier config keys and print them.
+            TreeSet<String> sortedSet = new TreeSet<String>(bundle.keySet());
+            for (String k : sortedSet) {
+                getOutPrintWriter().println(ccValueToString(k, getType(tag, k, bundle), bundle));
+            }
+        }
+        return 0;
+    }
+
+    // cc set-value
+    private int handleCcSetValue() {
+        PrintWriter errPw = getErrPrintWriter();
+        String tag = CARRIER_CONFIG_SUBCOMMAND + " " + CC_SET_VALUE + ": ";
+
+        // Parse all options
+        CcOptionParseResult options =  parseCcOptions(tag, true);
+        if (options == null) {
+            return -1;
+        }
+
+        // Get bundle containing all current carrier configuration values.
+        PersistableBundle originalValues = mCarrierConfigManager.getConfigForSubId(options.mSubId);
+        if (originalValues == null) {
+            errPw.println(tag + "No carrier config values found for subId " + options.mSubId + ".");
+            return -1;
+        }
+
+        // Get the key.
+        String key = getNextArg();
+        if (key == null || key.equals("")) {
+            errPw.println(tag + "KEY is missing");
+            return -1;
+        }
+
+        // Verify if the key is valid
+        if (!originalValues.containsKey(key)) {
+            errPw.println(tag + key + " is not a valid key.");
+            return -1;
+        }
+
+        // Remaining arguments is a list of new values. Add them all into an ArrayList.
+        ArrayList<String> valueList = new ArrayList<String>();
+        while (peekNextArg() != null) {
+            valueList.add(getNextArg());
+        }
+
+        // Find the type of the carrier config value
+        CcType type = getType(tag, key, originalValues);
+        if (type == CcType.UNKNOWN) {
+            errPw.println(tag + "ERROR: Not possible to override key with unknown type.");
+            return -1;
+        }
+
+        // Create an override bundle containing the key and value that should be overriden.
+        PersistableBundle overrideBundle = getOverrideBundle(tag, type, key, valueList);
+        if (overrideBundle == null) {
+            return -1;
+        }
+
+        // Override the value
+        mCarrierConfigManager.overrideConfig(options.mSubId, overrideBundle, options.mPersistent);
+
+        // Find bundle containing all new carrier configuration values after the override.
+        PersistableBundle newValues = mCarrierConfigManager.getConfigForSubId(options.mSubId);
+        if (newValues == null) {
+            errPw.println(tag + "No carrier config values found for subId " + options.mSubId + ".");
+            return -1;
+        }
+
+        // Print the original and new value.
+        String originalValueString = ccValueToString(key, type, originalValues);
+        String newValueString = ccValueToString(key, type, newValues);
+        getOutPrintWriter().println("Previous value: \n" + originalValueString);
+        getOutPrintWriter().println("New value: \n" + newValueString);
+
+        return 0;
+    }
+
+    // cc clear-values
+    private int handleCcClearValues() {
+        PrintWriter errPw = getErrPrintWriter();
+        String tag = CARRIER_CONFIG_SUBCOMMAND + " " + CC_CLEAR_VALUES + ": ";
+
+        // Parse all options
+        CcOptionParseResult options =  parseCcOptions(tag, false);
+        if (options == null) {
+            return -1;
+        }
+
+        // Clear all values that has previously been set.
+        mCarrierConfigManager.overrideConfig(options.mSubId, null, true);
+        getOutPrintWriter()
+                .println("All previously set carrier config override values has been cleared");
+        return 0;
+    }
+
+    private CcType getType(String tag, String key, PersistableBundle bundle) {
+        // Find the type by checking the type of the current value stored in the bundle.
+        Object value = bundle.get(key);
+
+        if (CC_TYPE_MAP.containsKey(key)) {
+            return CC_TYPE_MAP.get(key);
+        } else if (value != null) {
+            if (value instanceof Boolean) {
+                return CcType.BOOLEAN;
+            } else if (value instanceof Double) {
+                return CcType.DOUBLE;
+            } else if (value instanceof double[]) {
+                return CcType.DOUBLE_ARRAY;
+            } else if (value instanceof Integer) {
+                return CcType.INT;
+            } else if (value instanceof int[]) {
+                return CcType.INT_ARRAY;
+            } else if (value instanceof Long) {
+                return CcType.LONG;
+            } else if (value instanceof long[]) {
+                return CcType.LONG_ARRAY;
+            } else if (value instanceof String) {
+                return CcType.STRING;
+            } else if (value instanceof String[]) {
+                return CcType.STRING_ARRAY;
+            }
+        } else {
+            // Current value was null and can therefore not be used in order to find the type.
+            // Check the name of the key to infer the type. This check is not needed for primitive
+            // data types (boolean, double, int and long), since they can not be null.
+            if (key.endsWith("double_array")) {
+                return CcType.DOUBLE_ARRAY;
+            }
+            if (key.endsWith("int_array")) {
+                return CcType.INT_ARRAY;
+            }
+            if (key.endsWith("long_array")) {
+                return CcType.LONG_ARRAY;
+            }
+            if (key.endsWith("string")) {
+                return CcType.STRING;
+            }
+            if (key.endsWith("string_array") || key.endsWith("strings")) {
+                return CcType.STRING_ARRAY;
+            }
+        }
+
+        // Not possible to infer the type by looking at the current value or the key.
+        PrintWriter errPw = getErrPrintWriter();
+        errPw.println(tag + "ERROR: " + key + " has unknown type.");
+        return CcType.UNKNOWN;
+    }
+
+    private String ccValueToString(String key, CcType type, PersistableBundle bundle) {
+        String result;
+        StringBuilder valueString = new StringBuilder();
+        String typeString = type.toString();
+        Object value = bundle.get(key);
+
+        if (value == null) {
+            valueString.append("null");
+        } else {
+            switch (type) {
+                case DOUBLE_ARRAY: {
+                    // Format the string representation of the int array as value1 value2......
+                    double[] valueArray = (double[]) value;
+                    for (int i = 0; i < valueArray.length; i++) {
+                        if (i != 0) {
+                            valueString.append(" ");
+                        }
+                        valueString.append(valueArray[i]);
+                    }
+                    break;
+                }
+                case INT_ARRAY: {
+                    // Format the string representation of the int array as value1 value2......
+                    int[] valueArray = (int[]) value;
+                    for (int i = 0; i < valueArray.length; i++) {
+                        if (i != 0) {
+                            valueString.append(" ");
+                        }
+                        valueString.append(valueArray[i]);
+                    }
+                    break;
+                }
+                case LONG_ARRAY: {
+                    // Format the string representation of the int array as value1 value2......
+                    long[] valueArray = (long[]) value;
+                    for (int i = 0; i < valueArray.length; i++) {
+                        if (i != 0) {
+                            valueString.append(" ");
+                        }
+                        valueString.append(valueArray[i]);
+                    }
+                    break;
+                }
+                case STRING: {
+                    valueString.append("\"" + value.toString() + "\"");
+                    break;
+                }
+                case STRING_ARRAY: {
+                    // Format the string representation of the string array as "value1" "value2"....
+                    String[] valueArray = (String[]) value;
+                    for (int i = 0; i < valueArray.length; i++) {
+                        if (i != 0) {
+                            valueString.append(" ");
+                        }
+                        if (valueArray[i] != null) {
+                            valueString.append("\"" + valueArray[i] + "\"");
+                        } else {
+                            valueString.append("null");
+                        }
+                    }
+                    break;
+                }
+                default: {
+                    valueString.append(value.toString());
+                }
+            }
+        }
+        return String.format("%-70s %-15s %s", key, typeString, valueString);
+    }
+
+    private PersistableBundle getOverrideBundle(String tag, CcType type, String key,
+            ArrayList<String> valueList) {
+        PrintWriter errPw = getErrPrintWriter();
+        PersistableBundle bundle = new PersistableBundle();
+
+        // First verify that a valid number of values has been provided for the type.
+        switch (type) {
+            case BOOLEAN:
+            case DOUBLE:
+            case INT:
+            case LONG: {
+                if (valueList.size() != 1) {
+                    errPw.println(tag + "Expected 1 value for type " + type
+                            + ". Found: " + valueList.size());
+                    return null;
+                }
+                break;
+            }
+            case STRING: {
+                if (valueList.size() > 1) {
+                    errPw.println(tag + "Expected 0 or 1 values for type " + type
+                            + ". Found: " + valueList.size());
+                    return null;
+                }
+                break;
+            }
+        }
+
+        // Parse the value according to type and add it to the Bundle.
+        switch (type) {
+            case BOOLEAN: {
+                if ("true".equalsIgnoreCase(valueList.get(0))) {
+                    bundle.putBoolean(key, true);
+                } else if ("false".equalsIgnoreCase(valueList.get(0))) {
+                    bundle.putBoolean(key, false);
+                } else {
+                    errPw.println(tag + "Unable to parse " + valueList.get(0) + " as a " + type);
+                    return null;
+                }
+                break;
+            }
+            case DOUBLE: {
+                try {
+                    bundle.putDouble(key, Double.parseDouble(valueList.get(0)));
+                } catch (NumberFormatException nfe) {
+                    // Not a valid double
+                    errPw.println(tag + "Unable to parse " + valueList.get(0) + " as a " + type);
+                    return null;
+                }
+                break;
+            }
+            case DOUBLE_ARRAY: {
+                double[] valueDoubleArray = null;
+                if (valueList.size() > 0) {
+                    valueDoubleArray = new double[valueList.size()];
+                    for (int i = 0; i < valueList.size(); i++) {
+                        try {
+                            valueDoubleArray[i] = Double.parseDouble(valueList.get(i));
+                        } catch (NumberFormatException nfe) {
+                            // Not a valid double
+                            errPw.println(
+                                    tag + "Unable to parse " + valueList.get(i) + " as a double.");
+                            return null;
+                        }
+                    }
+                }
+                bundle.putDoubleArray(key, valueDoubleArray);
+                break;
+            }
+            case INT: {
+                try {
+                    bundle.putInt(key, Integer.parseInt(valueList.get(0)));
+                } catch (NumberFormatException nfe) {
+                    // Not a valid integer
+                    errPw.println(tag + "Unable to parse " + valueList.get(0) + " as an " + type);
+                    return null;
+                }
+                break;
+            }
+            case INT_ARRAY: {
+                int[] valueIntArray = null;
+                if (valueList.size() > 0) {
+                    valueIntArray = new int[valueList.size()];
+                    for (int i = 0; i < valueList.size(); i++) {
+                        try {
+                            valueIntArray[i] = Integer.parseInt(valueList.get(i));
+                        } catch (NumberFormatException nfe) {
+                            // Not a valid integer
+                            errPw.println(tag
+                                    + "Unable to parse " + valueList.get(i) + " as an integer.");
+                            return null;
+                        }
+                    }
+                }
+                bundle.putIntArray(key, valueIntArray);
+                break;
+            }
+            case LONG: {
+                try {
+                    bundle.putLong(key, Long.parseLong(valueList.get(0)));
+                } catch (NumberFormatException nfe) {
+                    // Not a valid long
+                    errPw.println(tag + "Unable to parse " + valueList.get(0) + " as a " + type);
+                    return null;
+                }
+                break;
+            }
+            case LONG_ARRAY: {
+                long[] valueLongArray = null;
+                if (valueList.size() > 0) {
+                    valueLongArray = new long[valueList.size()];
+                    for (int i = 0; i < valueList.size(); i++) {
+                        try {
+                            valueLongArray[i] = Long.parseLong(valueList.get(i));
+                        } catch (NumberFormatException nfe) {
+                            // Not a valid long
+                            errPw.println(
+                                    tag + "Unable to parse " + valueList.get(i) + " as a long");
+                            return null;
+                        }
+                    }
+                }
+                bundle.putLongArray(key, valueLongArray);
+                break;
+            }
+            case STRING: {
+                String value = null;
+                if (valueList.size() > 0) {
+                    value = valueList.get(0);
+                }
+                bundle.putString(key, value);
+                break;
+            }
+            case STRING_ARRAY: {
+                String[] valueStringArray = null;
+                if (valueList.size() > 0) {
+                    valueStringArray = new String[valueList.size()];
+                    valueList.toArray(valueStringArray);
+                }
+                bundle.putStringArray(key, valueStringArray);
+                break;
+            }
+        }
+        return bundle;
+    }
 }
diff --git a/src/com/android/phone/TimeConsumingPreferenceActivity.java b/src/com/android/phone/TimeConsumingPreferenceActivity.java
index 8c5ae6d..3b5fe21 100644
--- a/src/com/android/phone/TimeConsumingPreferenceActivity.java
+++ b/src/com/android/phone/TimeConsumingPreferenceActivity.java
@@ -187,6 +187,11 @@
     @Override
     public void onError(Preference preference, int error) {
         if (DBG) dumpState();
+        if (!preference.isEnabled()) {
+            Log.i(LOG_TAG, "onError, skipped duplicated error popup");
+            return;
+        }
+
         Log.i(LOG_TAG, "onError, preference=" + preference.getKey() + ", error=" + error);
 
         if (mIsForeground) {
diff --git a/src/com/android/phone/euicc/EuiccPublicActionUiDispatcherActivity.java b/src/com/android/phone/euicc/EuiccPublicActionUiDispatcherActivity.java
new file mode 100644
index 0000000..64a40b9
--- /dev/null
+++ b/src/com/android/phone/euicc/EuiccPublicActionUiDispatcherActivity.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2019 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.euicc;
+
+import android.annotation.Nullable;
+import android.content.Intent;
+import android.service.euicc.EuiccService;
+import android.telephony.euicc.EuiccManager;
+import android.util.Log;
+
+/**
+ * Trampoline activity to forward public eUICC intents to the active UI implementation.
+ *
+ * <p>Unlike {@link EuiccUiDispatcherActivity}, this activity does not require any permissions to
+ * start.
+ */
+public class EuiccPublicActionUiDispatcherActivity extends EuiccUiDispatcherActivity {
+    private static final String TAG = "EuiccPublicActionUiDispatcherActivity";
+
+    @Override
+    @Nullable
+    protected Intent getEuiccUiIntent() {
+        String action = getIntent().getAction();
+
+        Intent intent = new Intent();
+        // Propagate the extras from the original Intent.
+        intent.putExtras(getIntent());
+        switch (action) {
+            case EuiccManager.ACTION_START_EUICC_ACTIVATION:
+                intent.setAction(EuiccService.ACTION_START_EUICC_ACTIVATION);
+                break;
+            default:
+                Log.w(TAG, "Unsupported action: " + action);
+                return null;
+        }
+
+        return intent;
+    }
+}
diff --git a/src/com/android/phone/euicc/EuiccResolutionUiDispatcherActivity.java b/src/com/android/phone/euicc/EuiccResolutionUiDispatcherActivity.java
index 0f083c9..fd741a0 100644
--- a/src/com/android/phone/euicc/EuiccResolutionUiDispatcherActivity.java
+++ b/src/com/android/phone/euicc/EuiccResolutionUiDispatcherActivity.java
@@ -20,6 +20,7 @@
 import android.content.Intent;
 import android.service.euicc.EuiccService;
 import android.telephony.euicc.EuiccManager;
+import android.util.ArraySet;
 import android.util.Log;
 
 /**
@@ -33,6 +34,14 @@
 public class EuiccResolutionUiDispatcherActivity extends EuiccUiDispatcherActivity {
     private static final String TAG = "EuiccResUiDispatcher";
 
+    /** List of all valid resolution actions for validation purposes. */
+    private static final ArraySet<String> RESOLUTION_ACTIONS = new ArraySet<>();
+    static {
+        RESOLUTION_ACTIONS.add(EuiccService.ACTION_RESOLVE_DEACTIVATE_SIM);
+        RESOLUTION_ACTIONS.add(EuiccService.ACTION_RESOLVE_NO_PRIVILEGES);
+        RESOLUTION_ACTIONS.add(EuiccService.ACTION_RESOLVE_RESOLVABLE_ERRORS);
+    }
+
     @Override
     @Nullable
     protected Intent getEuiccUiIntent() {
@@ -45,7 +54,7 @@
         String euiccUiAction =
                 getIntent().getStringExtra(
                         EuiccManager.EXTRA_EMBEDDED_SUBSCRIPTION_RESOLUTION_ACTION);
-        if (!EuiccService.RESOLUTION_ACTIONS.contains(euiccUiAction)) {
+        if (!RESOLUTION_ACTIONS.contains(euiccUiAction)) {
             Log.w(TAG, "Unknown resolution action: " + euiccUiAction);
             return null;
         }
diff --git a/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java b/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
index 7c7b75d..57caede 100644
--- a/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
+++ b/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
@@ -18,41 +18,65 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.Activity;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
-import android.content.pm.IPackageManager;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.os.Bundle;
-import android.os.RemoteException;
-import android.os.ServiceManager;
+import android.os.UserHandle;
+import android.permission.PermissionManager;
 import android.service.euicc.EuiccService;
 import android.telephony.euicc.EuiccManager;
 import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.euicc.EuiccConnector;
+import com.android.internal.telephony.util.TelephonyUtils;
 
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /** Trampoline activity to forward eUICC intents from apps to the active UI implementation. */
 public class EuiccUiDispatcherActivity extends Activity {
     private static final String TAG = "EuiccUiDispatcher";
+    private static final long CHANGE_PERMISSION_TIMEOUT_MS = 15 * 1000; // 15 seconds
 
     /** Flags to use when querying PackageManager for Euicc component implementations. */
     private static final int EUICC_QUERY_FLAGS =
             PackageManager.MATCH_SYSTEM_ONLY | PackageManager.MATCH_DEBUG_TRIAGED_MISSING
                     | PackageManager.GET_RESOLVED_FILTER;
 
-    private final IPackageManager mPackageManager = IPackageManager.Stub
-            .asInterface(ServiceManager.getService("package"));
+    private PermissionManager mPermissionManager;
+    private boolean mGrantPermissionDone = false;
+    private ThreadPoolExecutor mExecutor;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        mPermissionManager = (PermissionManager) getSystemService(Context.PERMISSION_SERVICE);
+        mExecutor = new ThreadPoolExecutor(
+                1 /* corePoolSize */,
+                1 /* maxPoolSize */,
+                15, TimeUnit.SECONDS, /* keepAliveTime */
+                new LinkedBlockingQueue<>(), /* workQueue */
+                new ThreadFactory() {
+                    private final AtomicInteger mCount = new AtomicInteger(1);
+
+                    @Override
+                    public Thread newThread(Runnable r) {
+                        return new Thread(r, "EuiccService #" + mCount.getAndIncrement());
+                    }
+                }
+        );
         try {
             Intent euiccUiIntent = resolveEuiccUiIntent();
             if (euiccUiIntent == null) {
@@ -92,9 +116,9 @@
             return null;
         }
 
-        grantDefaultPermissionsToActiveLuiApp(activityInfo);
+        grantDefaultPermissionsToLuiApp(activityInfo);
 
-        euiccUiIntent.setComponent(activityInfo.getComponentName());
+        euiccUiIntent.setComponent(new ComponentName(activityInfo.packageName, activityInfo.name));
         return euiccUiIntent;
     }
 
@@ -127,6 +151,12 @@
         return intent;
     }
 
+    @Override
+    protected void onDestroy() {
+        mExecutor.shutdownNow();
+        super.onDestroy();
+    }
+
     @VisibleForTesting
     @Nullable
     ActivityInfo findBestActivity(Intent euiccUiIntent) {
@@ -135,11 +165,20 @@
 
     /** Grants default permissions to the active LUI app. */
     @VisibleForTesting
-    protected void grantDefaultPermissionsToActiveLuiApp(ActivityInfo activityInfo) {
+    protected void grantDefaultPermissionsToLuiApp(ActivityInfo activityInfo) {
+        CountDownLatch latch = new CountDownLatch(1);
         try {
-            mPackageManager.grantDefaultPermissionsToActiveLuiApp(
-                    activityInfo.packageName, getUserId());
-        } catch (RemoteException e) {
+            mPermissionManager.grantDefaultPermissionsToLuiApp(
+                    activityInfo.packageName, UserHandle.of(UserHandle.myUserId()), mExecutor,
+                    isSuccess -> {
+                        if (isSuccess) {
+                            latch.countDown();
+                        } else {
+                            Log.e(TAG, "Failed to revoke LUI app permissions.");
+                        }
+                    });
+            TelephonyUtils.waitUntilReady(latch, CHANGE_PERMISSION_TIMEOUT_MS);
+        } catch (RuntimeException e) {
             Log.e(TAG, "Failed to grant permissions to active LUI app.", e);
         }
     }
@@ -147,13 +186,22 @@
     /** Cleans up all the packages that shouldn't have permission. */
     @VisibleForTesting
     protected void revokePermissionFromLuiApps(Intent intent) {
+        CountDownLatch latch = new CountDownLatch(1);
         try {
             Set<String> luiApps = getAllLuiAppPackageNames(intent);
             String[] luiAppsArray = luiApps.toArray(new String[luiApps.size()]);
-            mPackageManager.revokeDefaultPermissionsFromLuiApps(luiAppsArray, getUserId());
-        } catch (RemoteException e) {
+            mPermissionManager.revokeDefaultPermissionsFromLuiApps(luiAppsArray,
+                    UserHandle.of(UserHandle.myUserId()), mExecutor, isSuccess -> {
+                        if (isSuccess) {
+                            latch.countDown();
+                        } else {
+                            Log.e(TAG, "Failed to revoke LUI app permissions.");
+                        }
+                    });
+            TelephonyUtils.waitUntilReady(latch, CHANGE_PERMISSION_TIMEOUT_MS);
+        } catch (RuntimeException e) {
             Log.e(TAG, "Failed to revoke LUI app permissions.");
-            throw e.rethrowAsRuntimeException();
+            throw e;
         }
     }
 
diff --git a/src/com/android/phone/otasp/OtaspActivationService.java b/src/com/android/phone/otasp/OtaspActivationService.java
index 7490880..6ed2ea8 100644
--- a/src/com/android/phone/otasp/OtaspActivationService.java
+++ b/src/com/android/phone/otasp/OtaspActivationService.java
@@ -150,11 +150,9 @@
         mPhone.registerForCdmaOtaStatusChange(mHandler, EVENT_CDMA_PROVISION_STATUS_UPDATE, null);
         mPhone.registerForPreciseCallStateChanged(mHandler, EVENT_CALL_STATE_CHANGED, null);
         logd("startNonInteractiveOtasp: placing call to '" + OTASP_NUMBER + "'...");
-        int callStatus = PhoneUtils.placeCall(this,
+        int callStatus = PhoneUtils.placeOtaspCall(this,
                 getPhone(),
-                OTASP_NUMBER,
-                null,   // contactRef
-                false); // isEmergencyCall
+                OTASP_NUMBER);
         if (callStatus == PhoneUtils.CALL_STATUS_DIALED) {
             if (DBG) logd("  ==> success return from placeCall(): callStatus = " + callStatus);
         } else {
diff --git a/src/com/android/phone/otasp/OtaspSimStateReceiver.java b/src/com/android/phone/otasp/OtaspSimStateReceiver.java
index 68b14b9..bb4022a 100644
--- a/src/com/android/phone/otasp/OtaspSimStateReceiver.java
+++ b/src/com/android/phone/otasp/OtaspSimStateReceiver.java
@@ -98,7 +98,7 @@
         }
     }
 
-    // It's fine to call multiple times, as the registrants are de-duped by Handler object.
+    // It's fine to call mutiple times, as the registrants are de-duped by Handler object.
     private void registerOtaspChangedHandler() {
         final Phone phone = PhoneGlobals.getPhone();
         phone.registerForOtaspChange(mOtaspHandler, EVENT_OTASP_CHANGED, null);
diff --git a/src/com/android/phone/settings/AccessibilitySettingsFragment.java b/src/com/android/phone/settings/AccessibilitySettingsFragment.java
index 2965685..37212cf 100644
--- a/src/com/android/phone/settings/AccessibilitySettingsFragment.java
+++ b/src/com/android/phone/settings/AccessibilitySettingsFragment.java
@@ -19,15 +19,18 @@
 import android.content.Context;
 import android.media.AudioManager;
 import android.os.Bundle;
+import android.os.PersistableBundle;
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceScreen;
 import android.preference.SwitchPreference;
 import android.provider.Settings;
+import android.telephony.AccessNetworkConstants;
 import android.telephony.CarrierConfigManager;
 import android.telephony.PhoneStateListener;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
+import android.text.TextUtils;
 import android.util.Log;
 
 import com.android.ims.ImsManager;
@@ -37,6 +40,11 @@
 import com.android.phone.PhoneGlobals;
 import com.android.phone.R;
 
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
+
 public class AccessibilitySettingsFragment extends PreferenceFragment {
     private static final String LOG_TAG = AccessibilitySettingsFragment.class.getSimpleName();
     private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
@@ -46,6 +54,8 @@
     private static final String BUTTON_RTT_KEY = "button_rtt_key";
     private static final String RTT_INFO_PREF = "button_rtt_more_information_key";
 
+    private static final int WFC_QUERY_TIMEOUT_MILLIS = 20;
+
     private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
         /**
          * Disable the TTY setting when in/out of a call (and if carrier doesn't
@@ -63,12 +73,9 @@
                 // support multi sim configuration.
                 TelephonyManager telephonyManager =
                         (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
-                final boolean isVolteTtySupported = getVolteTtySupported();
-                final boolean isVolteCurrentlyEnabled =
-                        ImsManager.isVolteEnabledByPlatform(mContext);
-                pref.setEnabled((isVolteTtySupported && isVolteCurrentlyEnabled &&
-                        !isVideoCallOrConferenceInProgress()) ||
-                        (telephonyManager.getCallState() == TelephonyManager.CALL_STATE_IDLE));
+                final boolean isVolteTtySupported = isVolteTtySupportedInAnySlot();
+                pref.setEnabled((isVolteTtySupported && !isVideoCallOrConferenceInProgress())
+                        || (telephonyManager.getCallState() == TelephonyManager.CALL_STATE_IDLE));
             }
         }
     };
@@ -111,8 +118,16 @@
         }
 
         if (shouldShowRttSetting()) {
-            // TODO: this is going to be a on/off switch for now. Ask UX about how to integrate
-            // this settings with TTY
+            TelephonyManager tm =
+                    (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
+            boolean isRoaming = tm.isNetworkRoaming(
+                    SubscriptionManager.getDefaultVoiceSubscriptionId());
+
+            boolean shouldDisableBecauseRoamingOffWfc = isRoaming && !isOnWfc();
+            if (shouldDisableBecauseRoamingOffWfc) {
+                mButtonRtt.setSummary(TextUtils.concat(getText(R.string.rtt_mode_summary), "\n",
+                        getText(R.string.no_rtt_when_roaming)));
+            }
             boolean rttOn = Settings.Secure.getInt(
                     mContext.getContentResolver(), Settings.Secure.RTT_CALLING_MODE, 0) != 0;
             mButtonRtt.setChecked(rttOn);
@@ -151,9 +166,9 @@
             Settings.System.putInt(mContext.getContentResolver(), Settings.System.HEARING_AID, hac);
 
             // Update HAC Value in AudioManager.
-            mAudioManager.setParameter(SettingsConstants.HAC_KEY,
-                    hac == SettingsConstants.HAC_ENABLED
-                            ? SettingsConstants.HAC_VAL_ON : SettingsConstants.HAC_VAL_OFF);
+            mAudioManager.setParameters(
+                    SettingsConstants.HAC_KEY + "=" + (hac == SettingsConstants.HAC_ENABLED
+                            ? SettingsConstants.HAC_VAL_ON : SettingsConstants.HAC_VAL_OFF));
             return true;
         } else if (preference == mButtonRtt) {
             Log.i(LOG_TAG, "RTT setting changed -- now " + mButtonRtt.isChecked());
@@ -177,11 +192,38 @@
         return false;
     }
 
-    private boolean getVolteTtySupported() {
+    private boolean isVolteTtySupportedInAnySlot() {
+        final Phone[] phones = PhoneFactory.getPhones();
+        if (phones == null) {
+            if (DBG) Log.d(LOG_TAG, "isVolteTtySupportedInAnySlot: No phones found.");
+            return false;
+        }
+
         CarrierConfigManager configManager =
                 (CarrierConfigManager) mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE);
-        return configManager.getConfig().getBoolean(
-                CarrierConfigManager.KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL);
+        for (Phone phone : phones) {
+            // Check if this phone supports VoLTE.
+            ImsManager imsManager = ImsManager.getInstance(mContext, phone.getPhoneId());
+            boolean volteEnabled = false;
+            if (imsManager != null) {
+                volteEnabled = imsManager.isVolteEnabledByPlatform();
+            }
+
+            // Check if this phone suports VoLTE TTY.
+            boolean volteTtySupported = false;
+            PersistableBundle carrierConfig = configManager.getConfigForSubId(phone.getSubId());
+            if (carrierConfig != null) {
+                volteTtySupported = carrierConfig.getBoolean(
+                        CarrierConfigManager.KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL);
+            }
+
+            if (volteEnabled && volteTtySupported) {
+                // VoLTE TTY is supported on this phone that also suports VoLTE.
+                return true;
+            }
+        }
+        // VoLTE TTY was not supported on any phone that also supports VoLTE.
+        return false;
     }
 
     private boolean isVideoCallOrConferenceInProgress() {
@@ -199,6 +241,21 @@
         return false;
     }
 
+    private boolean isOnWfc() {
+        LinkedBlockingQueue<Integer> result = new LinkedBlockingQueue<>(1);
+        Executor executor = Executors.newSingleThreadExecutor();
+        mContext.getSystemService(android.telephony.ims.ImsManager.class)
+                .getImsMmTelManager(SubscriptionManager.getDefaultSubscriptionId())
+                .getRegistrationTransportType(executor, result::offer);
+        try {
+            Integer transportType = result.poll(WFC_QUERY_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
+            return transportType != null
+                    && transportType == AccessNetworkConstants.TRANSPORT_TYPE_WLAN;
+        } catch (InterruptedException e) {
+            return false;
+        }
+    }
+
     private boolean shouldShowRttSetting() {
         // Go through all the subs -- if we want to display the RTT setting for any of them, do
         // display it.
diff --git a/src/com/android/phone/settings/BandMode.java b/src/com/android/phone/settings/BandMode.java
new file mode 100644
index 0000000..853075a
--- /dev/null
+++ b/src/com/android/phone/settings/BandMode.java
@@ -0,0 +1,255 @@
+/*
+ * Copyright (C) 2019 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.settings;
+
+import android.app.Activity;
+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.view.View;
+import android.view.Window;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+
+import androidx.appcompat.app.AlertDialog;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
+import com.android.phone.R;
+
+/**
+ * Radio Band Mode Selection Class
+ *
+ * It will query baseband about all available band modes and display them
+ * in screen. It will display all six band modes if the query failed.
+ *
+ * After user select one band, it will send the selection to baseband.
+ *
+ * It will alter user the result of select operation and exit, no matter success
+ * or not.
+ *
+ */
+public class BandMode extends Activity {
+    private static final String LOG_TAG = "phone";
+    private static final boolean DBG = false;
+
+    private static final int EVENT_BAND_SCAN_COMPLETED = 100;
+    private static final int EVENT_BAND_SELECTION_DONE = 200;
+
+    //Directly maps to RIL_RadioBandMode from ril.h
+    private static final String[] BAND_NAMES = new String[] {
+            "Automatic",
+            "Europe",
+            "United States",
+            "Japan",
+            "Australia",
+            "Australia 2",
+            "Cellular 800",
+            "PCS",
+            "Class 3 (JTACS)",
+            "Class 4 (Korea-PCS)",
+            "Class 5",
+            "Class 6 (IMT2000)",
+            "Class 7 (700Mhz-Upper)",
+            "Class 8 (1800Mhz-Upper)",
+            "Class 9 (900Mhz)",
+            "Class 10 (800Mhz-Secondary)",
+            "Class 11 (Europe PAMR 400Mhz)",
+            "Class 15 (US-AWS)",
+            "Class 16 (US-2500Mhz)"
+    };
+
+    private ListView mBandList;
+    private ArrayAdapter mBandListAdapter;
+    private BandListItem mTargetBand = null;
+    private DialogInterface mProgressPanel;
+
+    private Phone mPhone = null;
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
+        setContentView(R.layout.band_mode);
+
+        mPhone = PhoneFactory.getDefaultPhone();
+
+        mBandList = (ListView) findViewById(R.id.band);
+        mBandListAdapter = new ArrayAdapter<BandListItem>(this,
+                android.R.layout.simple_list_item_1);
+        mBandList.setAdapter(mBandListAdapter);
+        mBandList.setOnItemClickListener(mBandSelectionHandler);
+
+        loadBandList();
+    }
+
+    private AdapterView.OnItemClickListener mBandSelectionHandler =
+            new AdapterView.OnItemClickListener() {
+                public void onItemClick(AdapterView parent, View v,
+                        int position, long id) {
+
+                    getWindow().setFeatureInt(
+                            Window.FEATURE_INDETERMINATE_PROGRESS,
+                            Window.PROGRESS_VISIBILITY_ON);
+
+                    mTargetBand = (BandListItem) parent.getAdapter().getItem(position);
+
+                    if (DBG) log("Select band : " + mTargetBand.toString());
+
+                    Message msg =
+                            mHandler.obtainMessage(EVENT_BAND_SELECTION_DONE);
+                    mPhone.setBandMode(mTargetBand.getBand(), msg);
+                }
+            };
+
+    private static class BandListItem {
+        private int mBandMode = Phone.BM_UNSPECIFIED;
+
+        BandListItem(int bm) {
+            mBandMode = bm;
+        }
+
+        public int getBand() {
+            return mBandMode;
+        }
+
+        public String toString() {
+            if (mBandMode >= BAND_NAMES.length) return "Band mode " + mBandMode;
+            return BAND_NAMES[mBandMode];
+        }
+    }
+
+    private void loadBandList() {
+        String str = getString(R.string.band_mode_loading);
+
+        if (DBG) log(str);
+
+
+        //ProgressDialog.show(this, null, str, true, true, null);
+        mProgressPanel = new AlertDialog.Builder(this)
+            .setMessage(str)
+            .show();
+
+        Message msg = mHandler.obtainMessage(EVENT_BAND_SCAN_COMPLETED);
+        mPhone.queryAvailableBandMode(msg);
+
+    }
+
+    private void bandListLoaded(AsyncResult result) {
+        if (DBG) log("network list loaded");
+
+        if (mProgressPanel != null) mProgressPanel.dismiss();
+
+        clearList();
+
+        boolean addBandSuccess = false;
+        BandListItem item;
+
+        if (result.result != null) {
+            int [] bands = (int []) result.result;
+
+            if (bands.length == 0) {
+                Log.wtf(LOG_TAG, "No Supported Band Modes");
+                return;
+            }
+
+            int size = bands[0];
+
+            if (size > 0) {
+                mBandListAdapter.add(
+                        new BandListItem(Phone.BM_UNSPECIFIED)); //Always include AUTOMATIC
+                for (int i = 1; i <= size; i++) {
+                    if (bands[i] == Phone.BM_UNSPECIFIED) {
+                        continue;
+                    }
+                    item = new BandListItem(bands[i]);
+                    mBandListAdapter.add(item);
+                    if (DBG) log("Add " + item.toString());
+                }
+                addBandSuccess = true;
+            }
+        }
+
+        if (!addBandSuccess) {
+            if (DBG) log("Error in query, add default list");
+            for (int i = 0; i < Phone.BM_NUM_BAND_MODES; i++) {
+                item = new BandListItem(i);
+                mBandListAdapter.add(item);
+                if (DBG) log("Add default " + item.toString());
+            }
+        }
+        mBandList.requestFocus();
+    }
+
+    private void displayBandSelectionResult(Throwable ex) {
+        String status = getString(R.string.band_mode_set)
+                + " [" + mTargetBand.toString() + "] ";
+
+        if (ex != null) {
+            status = status + getString(R.string.band_mode_failed);
+        } else {
+            status = status + getString(R.string.band_mode_succeeded);
+        }
+
+        mProgressPanel = new AlertDialog.Builder(this)
+            .setMessage(status)
+            .setPositiveButton(android.R.string.ok, null).show();
+    }
+
+    private void clearList() {
+        while (mBandListAdapter.getCount() > 0) {
+            mBandListAdapter.remove(
+                    mBandListAdapter.getItem(0));
+        }
+    }
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, "[BandsList] " + msg);
+    }
+
+    private Handler mHandler = new Handler() {
+        public void handleMessage(Message msg) {
+            AsyncResult ar;
+            switch (msg.what) {
+                case EVENT_BAND_SCAN_COMPLETED:
+                    ar = (AsyncResult) msg.obj;
+
+                    bandListLoaded(ar);
+                    break;
+
+                case EVENT_BAND_SELECTION_DONE:
+                    ar = (AsyncResult) msg.obj;
+
+                    getWindow().setFeatureInt(
+                            Window.FEATURE_INDETERMINATE_PROGRESS,
+                            Window.PROGRESS_VISIBILITY_OFF);
+
+                    if (!isFinishing()) {
+                        displayBandSelectionResult(ar.exception);
+                    }
+                    break;
+            }
+        }
+    };
+
+
+}
diff --git a/src/com/android/phone/settings/CallForwardInfoUtil.java b/src/com/android/phone/settings/CallForwardInfoUtil.java
index 1983fab..b963df8 100644
--- a/src/com/android/phone/settings/CallForwardInfoUtil.java
+++ b/src/com/android/phone/settings/CallForwardInfoUtil.java
@@ -82,6 +82,7 @@
         phone.setCallForwardingOption(commandInterfaceCfAction,
                 info.reason,
                 info.number,
+                info.serviceClass,
                 info.timeSeconds,
                 message);
     }
@@ -93,10 +94,12 @@
      */
     public static CallForwardInfo getCallForwardInfo(CallForwardInfo[] infos, int reason) {
         CallForwardInfo info = null;
-        for (int i = 0 ; i < infos.length; i++) {
-            if (isServiceClassVoice(infos[i])) {
-                info = infos[i];
-                break;
+        if (infos != null) {
+            for (int i = 0 ; i < infos.length; i++) {
+                if (isServiceClassVoice(infos[i])) {
+                    info = infos[i];
+                    break;
+                }
             }
         }
 
diff --git a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
index aa6b155..3811a77 100644
--- a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
+++ b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
@@ -101,7 +101,7 @@
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
-        mTelecomManager = TelecomManager.from(getActivity());
+        mTelecomManager = getActivity().getSystemService(TelecomManager.class);
         mTelephonyManager = TelephonyManager.from(getActivity());
         mSubscriptionManager = SubscriptionManager.from(getActivity());
     }
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
new file mode 100644
index 0000000..31b7a9e
--- /dev/null
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -0,0 +1,1794 @@
+/*
+ * Copyright (C) 2019 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.settings;
+
+import static android.net.ConnectivityManager.NetworkCallback;
+import static android.provider.Settings.Global.PREFERRED_NETWORK_MODE;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.res.Resources;
+import android.graphics.Typeface;
+import android.net.ConnectivityManager;
+import android.net.Network;
+import android.net.NetworkCapabilities;
+import android.net.NetworkRequest;
+import android.net.TrafficStats;
+import android.net.Uri;
+import android.os.AsyncResult;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.os.SystemProperties;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.CellIdentityCdma;
+import android.telephony.CellIdentityGsm;
+import android.telephony.CellIdentityLte;
+import android.telephony.CellIdentityWcdma;
+import android.telephony.CellInfo;
+import android.telephony.CellInfoCdma;
+import android.telephony.CellInfoGsm;
+import android.telephony.CellInfoLte;
+import android.telephony.CellInfoWcdma;
+import android.telephony.CellLocation;
+import android.telephony.CellSignalStrengthCdma;
+import android.telephony.CellSignalStrengthGsm;
+import android.telephony.CellSignalStrengthLte;
+import android.telephony.CellSignalStrengthWcdma;
+import android.telephony.PhoneStateListener;
+import android.telephony.PhysicalChannelConfig;
+import android.telephony.PreciseCallState;
+import android.telephony.ServiceState;
+import android.telephony.SignalStrength;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.telephony.cdma.CdmaCellLocation;
+import android.telephony.gsm.GsmCellLocation;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.EditText;
+import android.widget.Spinner;
+import android.widget.Switch;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AlertDialog.Builder;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.android.ims.ImsConfig;
+import com.android.ims.ImsException;
+import com.android.ims.ImsManager;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
+import com.android.phone.R;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.List;
+import java.util.concurrent.LinkedBlockingDeque;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Radio Information Class
+ *
+ * Allows user to read and alter some of the radio related information.
+ *
+ */
+public class RadioInfo extends AppCompatActivity {
+    private static final String TAG = "RadioInfo";
+
+    private static final boolean IS_USER_BUILD = "user".equals(Build.TYPE);
+
+    private static final String[] PREFERRED_NETWORK_LABELS = {
+            "GSM/WCDMA preferred",
+            "GSM only",
+            "WCDMA only",
+            "GSM/WCDMA auto (PRL)",
+            "CDMA/EvDo auto (PRL)",
+            "CDMA only",
+            "EvDo only",
+            "CDMA/EvDo/GSM/WCDMA (PRL)",
+            "CDMA + LTE/EvDo (PRL)",
+            "GSM/WCDMA/LTE (PRL)",
+            "LTE/CDMA/EvDo/GSM/WCDMA (PRL)",
+            "LTE only",
+            "LTE/WCDMA",
+            "TDSCDMA only",
+            "TDSCDMA/WCDMA",
+            "LTE/TDSCDMA",
+            "TDSCDMA/GSM",
+            "LTE/TDSCDMA/GSM",
+            "TDSCDMA/GSM/WCDMA",
+            "LTE/TDSCDMA/WCDMA",
+            "LTE/TDSCDMA/GSM/WCDMA",
+            "TDSCDMA/CDMA/EvDo/GSM/WCDMA ",
+            "LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA",
+            "NR only",
+            "NR/LTE",
+            "NR/LTE/CDMA/EvDo",
+            "NR/LTE/GSM/WCDMA",
+            "NR/LTE/CDMA/EvDo/GSM/WCDMA",
+            "NR/LTE/WCDMA",
+            "NR/LTE/TDSCDMA",
+            "NR/LTE/TDSCDMA/GSM",
+            "NR/LTE/TDSCDMA/WCDMA",
+            "NR/LTE/TDSCDMA/GSM/WCDMA",
+            "NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA",
+            "Unknown"
+    };
+
+    private static String[] sPhoneIndexLabels;
+
+    private static final int sCellInfoListRateDisabled = Integer.MAX_VALUE;
+    private static final int sCellInfoListRateMax = 0;
+
+    private static final String OEM_RADIO_INFO_INTENT =
+            "com.android.phone.settings.OEM_RADIO_INFO";
+
+    private static final String DSDS_MODE_PROPERTY = "ro.boot.hardware.dsds";
+
+    /**
+     * A value indicates the device is always on dsds mode.
+     * @see {@link #DSDS_MODE_PROPERTY}
+     */
+    private static final int ALWAYS_ON_DSDS_MODE = 1;
+
+    private static final int IMS_VOLTE_PROVISIONED_CONFIG_ID =
+            ImsConfig.ConfigConstants.VLT_SETTING_ENABLED;
+
+    private static final int IMS_VT_PROVISIONED_CONFIG_ID =
+            ImsConfig.ConfigConstants.LVC_SETTING_ENABLED;
+
+    private static final int IMS_WFC_PROVISIONED_CONFIG_ID =
+            ImsConfig.ConfigConstants.VOICE_OVER_WIFI_SETTING_ENABLED;
+
+    private static final int EAB_PROVISIONED_CONFIG_ID =
+            ImsConfig.ConfigConstants.EAB_SETTING_ENABLED;
+
+    //Values in must match CELL_INFO_REFRESH_RATES
+    private static final String[] CELL_INFO_REFRESH_RATE_LABELS = {
+            "Disabled",
+            "Immediate",
+            "Min 5s",
+            "Min 10s",
+            "Min 60s"
+    };
+
+    //Values in seconds, must match CELL_INFO_REFRESH_RATE_LABELS
+    private static final int [] CELL_INFO_REFRESH_RATES = {
+        sCellInfoListRateDisabled,
+        sCellInfoListRateMax,
+        5000,
+        10000,
+        60000
+    };
+
+    private static void log(String s) {
+        Log.d(TAG, s);
+    }
+
+    private static final int EVENT_CFI_CHANGED = 302;
+
+    private static final int EVENT_QUERY_PREFERRED_TYPE_DONE = 1000;
+    private static final int EVENT_SET_PREFERRED_TYPE_DONE = 1001;
+    private static final int EVENT_QUERY_SMSC_DONE = 1005;
+    private static final int EVENT_UPDATE_SMSC_DONE = 1006;
+    private static final int EVENT_PHYSICAL_CHANNEL_CONFIG_CHANGED = 1007;
+
+    private static final int MENU_ITEM_SELECT_BAND         = 0;
+    private static final int MENU_ITEM_VIEW_ADN            = 1;
+    private static final int MENU_ITEM_VIEW_FDN            = 2;
+    private static final int MENU_ITEM_VIEW_SDN            = 3;
+    private static final int MENU_ITEM_GET_IMS_STATUS      = 4;
+    private static final int MENU_ITEM_TOGGLE_DATA         = 5;
+
+    private TextView mDeviceId; //DeviceId is the IMEI in GSM and the MEID in CDMA
+    private TextView mLine1Number;
+    private TextView mSubscriptionId;
+    private TextView mDds;
+    private TextView mSubscriberId;
+    private TextView mCallState;
+    private TextView mOperatorName;
+    private TextView mRoamingState;
+    private TextView mGsmState;
+    private TextView mGprsState;
+    private TextView mVoiceNetwork;
+    private TextView mDataNetwork;
+    private TextView mDBm;
+    private TextView mMwi;
+    private TextView mCfi;
+    private TextView mLocation;
+    private TextView mCellInfo;
+    private TextView mSent;
+    private TextView mReceived;
+    private TextView mPingHostnameV4;
+    private TextView mPingHostnameV6;
+    private TextView mHttpClientTest;
+    private TextView mPhyChanConfig;
+    private TextView mDnsCheckState;
+    private TextView mDownlinkKbps;
+    private TextView mUplinkKbps;
+    private EditText mSmsc;
+    private Switch mRadioPowerOnSwitch;
+    private Button mCellInfoRefreshRateButton;
+    private Button mDnsCheckToggleButton;
+    private Button mPingTestButton;
+    private Button mUpdateSmscButton;
+    private Button mRefreshSmscButton;
+    private Button mOemInfoButton;
+    private Button mCarrierProvisioningButton;
+    private Button mTriggerCarrierProvisioningButton;
+    private Switch mImsVolteProvisionedSwitch;
+    private Switch mImsVtProvisionedSwitch;
+    private Switch mImsWfcProvisionedSwitch;
+    private Switch mEabProvisionedSwitch;
+    private Switch mCbrsDataSwitch;
+    private Switch mDsdsSwitch;
+    private Spinner mPreferredNetworkType;
+    private Spinner mSelectPhoneIndex;
+    private Spinner mCellInfoRefreshRateSpinner;
+
+    private static final long RUNNABLE_TIMEOUT_MS = 5 * 60 * 1000L;
+
+    private ThreadPoolExecutor mQueuedWork;
+
+    private ConnectivityManager mConnectivityManager;
+    private TelephonyManager mTelephonyManager;
+    private ImsManager mImsManager = null;
+    private Phone mPhone = null;
+
+    private String mPingHostnameResultV4;
+    private String mPingHostnameResultV6;
+    private String mHttpClientTestResult;
+    private boolean mMwiValue = false;
+    private boolean mCfiValue = false;
+
+    private List<CellInfo> mCellInfoResult = null;
+    private CellLocation mCellLocationResult = null;
+
+    private int mPreferredNetworkTypeResult;
+    private int mCellInfoRefreshRateIndex;
+    private int mSelectedPhoneIndex;
+
+    private final NetworkRequest mDefaultNetworkRequest = new NetworkRequest.Builder()
+            .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
+            .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
+            .build();
+
+    private final NetworkCallback mNetworkCallback = new NetworkCallback() {
+        public void onCapabilitiesChanged(Network n, NetworkCapabilities nc) {
+            int dlbw = nc.getLinkDownstreamBandwidthKbps();
+            int ulbw = nc.getLinkUpstreamBandwidthKbps();
+            updateBandwidths(dlbw, ulbw);
+        }
+    };
+
+    // not final because we need to recreate this object to register on a new subId (b/117555407)
+    private PhoneStateListener mPhoneStateListener = new RadioInfoPhoneStateListener();
+    private class RadioInfoPhoneStateListener extends PhoneStateListener {
+        @Override
+        public void onDataConnectionStateChanged(int state) {
+            updateDataState();
+            updateNetworkType();
+        }
+
+        @Override
+        public void onDataActivity(int direction) {
+            updateDataStats2();
+        }
+
+        @Override
+        public void onCallStateChanged(int state, String incomingNumber) {
+            updateNetworkType();
+            updatePhoneState(state);
+        }
+
+        @Override
+        public void onPreciseCallStateChanged(PreciseCallState preciseState) {
+            updateNetworkType();
+        }
+
+        @Override
+        public void onCellLocationChanged(CellLocation location) {
+            updateLocation(location);
+        }
+
+        @Override
+        public void onMessageWaitingIndicatorChanged(boolean mwi) {
+            mMwiValue = mwi;
+            updateMessageWaiting();
+        }
+
+        @Override
+        public void onCallForwardingIndicatorChanged(boolean cfi) {
+            mCfiValue = cfi;
+            updateCallRedirect();
+        }
+
+        @Override
+        public void onCellInfoChanged(List<CellInfo> arrayCi) {
+            log("onCellInfoChanged: arrayCi=" + arrayCi);
+            mCellInfoResult = arrayCi;
+            updateCellInfo(mCellInfoResult);
+        }
+
+        @Override
+        public void onSignalStrengthsChanged(SignalStrength signalStrength) {
+            log("onSignalStrengthChanged: SignalStrength=" + signalStrength);
+            updateSignalStrength(signalStrength);
+        }
+
+        @Override
+        public void onServiceStateChanged(ServiceState serviceState) {
+            log("onServiceStateChanged: ServiceState=" + serviceState);
+            updateServiceState(serviceState);
+            updateRadioPowerState();
+            updateNetworkType();
+            updateImsProvisionedState();
+        }
+
+    }
+
+    private void updatePhysicalChannelConfiguration(List<PhysicalChannelConfig> configs) {
+        StringBuilder sb = new StringBuilder();
+        String div = "";
+        sb.append("{");
+        if (configs != null) {
+            for (PhysicalChannelConfig c : configs) {
+                sb.append(div).append(c);
+                div = ",";
+            }
+        }
+        sb.append("}");
+        mPhyChanConfig.setText(sb.toString());
+    }
+
+    private void updatePreferredNetworkType(int type) {
+        if (type >= PREFERRED_NETWORK_LABELS.length || type < 0) {
+            log("EVENT_QUERY_PREFERRED_TYPE_DONE: unknown "
+                    + "type=" + type);
+            type = PREFERRED_NETWORK_LABELS.length - 1; //set to Unknown
+        }
+        mPreferredNetworkTypeResult = type;
+
+        mPreferredNetworkType.setSelection(mPreferredNetworkTypeResult, true);
+    }
+
+    private void updatePhoneIndex(int phoneIndex, int subId) {
+        // unregister listeners on the old subId
+        unregisterPhoneStateListener();
+        mTelephonyManager.setCellInfoListRate(sCellInfoListRateDisabled);
+
+        // update the subId
+        mTelephonyManager = mTelephonyManager.createForSubscriptionId(subId);
+
+        // update the phoneId
+        mImsManager = ImsManager.getInstance(getApplicationContext(), phoneIndex);
+        mPhone = PhoneFactory.getPhone(phoneIndex);
+
+        updateAllFields();
+    }
+
+    private Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            AsyncResult ar;
+            switch (msg.what) {
+                case EVENT_QUERY_PREFERRED_TYPE_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception == null && ar.result != null) {
+                        updatePreferredNetworkType(((int []) ar.result)[0]);
+                    } else {
+                        //In case of an exception, we will set this to unknown
+                        updatePreferredNetworkType(PREFERRED_NETWORK_LABELS.length - 1);
+                    }
+                    break;
+                case EVENT_SET_PREFERRED_TYPE_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception != null) {
+                        log("Set preferred network type failed.");
+                    }
+                    break;
+                case EVENT_QUERY_SMSC_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception != null) {
+                        mSmsc.setText("refresh error");
+                    } else {
+                        mSmsc.setText((String) ar.result);
+                    }
+                    break;
+                case EVENT_UPDATE_SMSC_DONE:
+                    mUpdateSmscButton.setEnabled(true);
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception != null) {
+                        mSmsc.setText("update error");
+                    }
+                    break;
+                case EVENT_PHYSICAL_CHANNEL_CONFIG_CHANGED:
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception != null) {
+                        mPhyChanConfig.setText(("update error"));
+                    }
+                    updatePhysicalChannelConfiguration((List<PhysicalChannelConfig>) ar.result);
+                    break;
+                default:
+                    super.handleMessage(msg);
+                    break;
+
+            }
+        }
+    };
+
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        if (!android.os.Process.myUserHandle().isSystem()) {
+            Log.e(TAG, "Not run from system user, don't do anything.");
+            finish();
+            return;
+        }
+
+        setContentView(R.layout.radio_info);
+
+        log("Started onCreate");
+
+        mQueuedWork = new ThreadPoolExecutor(1, 1, RUNNABLE_TIMEOUT_MS, TimeUnit.MICROSECONDS,
+                new LinkedBlockingDeque<Runnable>());
+        mTelephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
+        mConnectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
+        mPhone = PhoneFactory.getDefaultPhone();
+
+        mImsManager = ImsManager.getInstance(getApplicationContext(),
+                SubscriptionManager.getDefaultVoicePhoneId());
+
+        sPhoneIndexLabels = getPhoneIndexLabels(mTelephonyManager);
+
+        mDeviceId = (TextView) findViewById(R.id.imei);
+        mLine1Number = (TextView) findViewById(R.id.number);
+        mSubscriptionId = (TextView) findViewById(R.id.subid);
+        mDds = (TextView) findViewById(R.id.dds);
+        mSubscriberId = (TextView) findViewById(R.id.imsi);
+        mCallState = (TextView) findViewById(R.id.call);
+        mOperatorName = (TextView) findViewById(R.id.operator);
+        mRoamingState = (TextView) findViewById(R.id.roaming);
+        mGsmState = (TextView) findViewById(R.id.gsm);
+        mGprsState = (TextView) findViewById(R.id.gprs);
+        mVoiceNetwork = (TextView) findViewById(R.id.voice_network);
+        mDataNetwork = (TextView) findViewById(R.id.data_network);
+        mDBm = (TextView) findViewById(R.id.dbm);
+        mMwi = (TextView) findViewById(R.id.mwi);
+        mCfi = (TextView) findViewById(R.id.cfi);
+        mLocation = (TextView) findViewById(R.id.location);
+        mCellInfo = (TextView) findViewById(R.id.cellinfo);
+        mCellInfo.setTypeface(Typeface.MONOSPACE);
+
+        mSent = (TextView) findViewById(R.id.sent);
+        mReceived = (TextView) findViewById(R.id.received);
+        mSmsc = (EditText) findViewById(R.id.smsc);
+        mDnsCheckState = (TextView) findViewById(R.id.dnsCheckState);
+        mPingHostnameV4 = (TextView) findViewById(R.id.pingHostnameV4);
+        mPingHostnameV6 = (TextView) findViewById(R.id.pingHostnameV6);
+        mHttpClientTest = (TextView) findViewById(R.id.httpClientTest);
+
+        mPhyChanConfig = (TextView) findViewById(R.id.phy_chan_config);
+
+        mPreferredNetworkType = (Spinner) findViewById(R.id.preferredNetworkType);
+        ArrayAdapter<String> mPreferredNetworkTypeAdapter = new ArrayAdapter<String>(this,
+                android.R.layout.simple_spinner_item, PREFERRED_NETWORK_LABELS);
+        mPreferredNetworkTypeAdapter
+                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        mPreferredNetworkType.setAdapter(mPreferredNetworkTypeAdapter);
+
+        mSelectPhoneIndex = (Spinner) findViewById(R.id.phoneIndex);
+        ArrayAdapter<String> phoneIndexAdapter = new ArrayAdapter<String>(this,
+                android.R.layout.simple_spinner_item, sPhoneIndexLabels);
+        phoneIndexAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        mSelectPhoneIndex.setAdapter(phoneIndexAdapter);
+
+        mCellInfoRefreshRateSpinner = (Spinner) findViewById(R.id.cell_info_rate_select);
+        ArrayAdapter<String> cellInfoAdapter = new ArrayAdapter<String>(this,
+                android.R.layout.simple_spinner_item, CELL_INFO_REFRESH_RATE_LABELS);
+        cellInfoAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        mCellInfoRefreshRateSpinner.setAdapter(cellInfoAdapter);
+
+        mImsVolteProvisionedSwitch = (Switch) findViewById(R.id.volte_provisioned_switch);
+        mImsVtProvisionedSwitch = (Switch) findViewById(R.id.vt_provisioned_switch);
+        mImsWfcProvisionedSwitch = (Switch) findViewById(R.id.wfc_provisioned_switch);
+        mEabProvisionedSwitch = (Switch) findViewById(R.id.eab_provisioned_switch);
+
+        if (!ImsManager.isImsSupportedOnDevice(mPhone.getContext())) {
+            mImsVolteProvisionedSwitch.setVisibility(View.GONE);
+            mImsVtProvisionedSwitch.setVisibility(View.GONE);
+            mImsWfcProvisionedSwitch.setVisibility(View.GONE);
+            mEabProvisionedSwitch.setVisibility(View.GONE);
+        }
+
+        mCbrsDataSwitch = (Switch) findViewById(R.id.cbrs_data_switch);
+        mCbrsDataSwitch.setVisibility(isCbrsSupported() ? View.VISIBLE : View.GONE);
+
+        mDsdsSwitch = findViewById(R.id.dsds_switch);
+        if (isDsdsSupported() && !dsdsModeOnly()) {
+            mDsdsSwitch.setVisibility(View.VISIBLE);
+            mDsdsSwitch.setOnClickListener(v -> {
+                if (mTelephonyManager.doesSwitchMultiSimConfigTriggerReboot()) {
+                    // Undo the click action until user clicks the confirm dialog.
+                    mDsdsSwitch.toggle();
+                    showDsdsChangeDialog();
+                } else {
+                    performDsdsSwitch();
+                }
+            });
+            mDsdsSwitch.setChecked(isDsdsEnabled());
+        } else {
+            mDsdsSwitch.setVisibility(View.GONE);
+        }
+
+        mRadioPowerOnSwitch = (Switch) findViewById(R.id.radio_power);
+
+        mDownlinkKbps = (TextView) findViewById(R.id.dl_kbps);
+        mUplinkKbps = (TextView) findViewById(R.id.ul_kbps);
+        updateBandwidths(0, 0);
+
+        mPingTestButton = (Button) findViewById(R.id.ping_test);
+        mPingTestButton.setOnClickListener(mPingButtonHandler);
+        mUpdateSmscButton = (Button) findViewById(R.id.update_smsc);
+        mUpdateSmscButton.setOnClickListener(mUpdateSmscButtonHandler);
+        mRefreshSmscButton = (Button) findViewById(R.id.refresh_smsc);
+        mRefreshSmscButton.setOnClickListener(mRefreshSmscButtonHandler);
+        mDnsCheckToggleButton = (Button) findViewById(R.id.dns_check_toggle);
+        mDnsCheckToggleButton.setOnClickListener(mDnsCheckButtonHandler);
+        mCarrierProvisioningButton = (Button) findViewById(R.id.carrier_provisioning);
+        mCarrierProvisioningButton.setOnClickListener(mCarrierProvisioningButtonHandler);
+        mTriggerCarrierProvisioningButton = (Button) findViewById(
+                R.id.trigger_carrier_provisioning);
+        mTriggerCarrierProvisioningButton.setOnClickListener(
+                mTriggerCarrierProvisioningButtonHandler);
+
+        mOemInfoButton = (Button) findViewById(R.id.oem_info);
+        mOemInfoButton.setOnClickListener(mOemInfoButtonHandler);
+        PackageManager pm = getPackageManager();
+        Intent oemInfoIntent = new Intent(OEM_RADIO_INFO_INTENT);
+        List<ResolveInfo> oemInfoIntentList = pm.queryIntentActivities(oemInfoIntent, 0);
+        if (oemInfoIntentList.size() == 0) {
+            mOemInfoButton.setEnabled(false);
+        }
+
+        mCellInfoRefreshRateIndex = 0; //disabled
+        mPreferredNetworkTypeResult = PREFERRED_NETWORK_LABELS.length - 1; //Unknown
+        mSelectedPhoneIndex = 0; //phone 0
+
+        //FIXME: Replace with TelephonyManager call
+        mPhone.getPreferredNetworkType(
+                mHandler.obtainMessage(EVENT_QUERY_PREFERRED_TYPE_DONE));
+
+        restoreFromBundle(icicle);
+    }
+
+    @Override
+    public Intent getParentActivityIntent() {
+        Intent parentActivity = super.getParentActivityIntent();
+        if (parentActivity == null) {
+            parentActivity = (new Intent()).setClassName("com.android.settings",
+                    "com.android.settings.Settings$TestingSettingsActivity");
+        }
+        return parentActivity;
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+
+        log("Started onResume");
+
+        updateAllFields();
+    }
+
+    private void updateAllFields() {
+        updateMessageWaiting();
+        updateCallRedirect();
+        updateDataState();
+        updateDataStats2();
+        updateRadioPowerState();
+        updateImsProvisionedState();
+        updateProperties();
+        updateDnsCheckState();
+        updateNetworkType();
+
+        updateLocation(mCellLocationResult);
+        updateCellInfo(mCellInfoResult);
+        updateSubscriptionIds();
+
+        mPingHostnameV4.setText(mPingHostnameResultV4);
+        mPingHostnameV6.setText(mPingHostnameResultV6);
+        mHttpClientTest.setText(mHttpClientTestResult);
+
+        mCellInfoRefreshRateSpinner.setOnItemSelectedListener(mCellInfoRefreshRateHandler);
+        //set selection after registering listener to force update
+        mCellInfoRefreshRateSpinner.setSelection(mCellInfoRefreshRateIndex);
+
+        //set selection before registering to prevent update
+        mPreferredNetworkType.setSelection(mPreferredNetworkTypeResult, true);
+        mPreferredNetworkType.setOnItemSelectedListener(mPreferredNetworkHandler);
+
+        // set phone index
+        mSelectPhoneIndex.setSelection(mSelectedPhoneIndex, true);
+        mSelectPhoneIndex.setOnItemSelectedListener(mSelectPhoneIndexHandler);
+
+        mRadioPowerOnSwitch.setOnCheckedChangeListener(mRadioPowerOnChangeListener);
+        mImsVolteProvisionedSwitch.setOnCheckedChangeListener(mImsVolteCheckedChangeListener);
+        mImsVtProvisionedSwitch.setOnCheckedChangeListener(mImsVtCheckedChangeListener);
+        mImsWfcProvisionedSwitch.setOnCheckedChangeListener(mImsWfcCheckedChangeListener);
+        mEabProvisionedSwitch.setOnCheckedChangeListener(mEabCheckedChangeListener);
+
+        if (isCbrsSupported()) {
+            mCbrsDataSwitch.setChecked(getCbrsDataState());
+            mCbrsDataSwitch.setOnCheckedChangeListener(mCbrsDataSwitchChangeListener);
+        }
+
+        unregisterPhoneStateListener();
+        registerPhoneStateListener();
+        mPhone.registerForPhysicalChannelConfig(mHandler,
+            EVENT_PHYSICAL_CHANNEL_CONFIG_CHANGED, null);
+
+        mConnectivityManager.registerNetworkCallback(
+                mDefaultNetworkRequest, mNetworkCallback, mHandler);
+
+        mSmsc.clearFocus();
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+
+        log("onPause: unregister phone & data intents");
+
+        mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
+        mTelephonyManager.setCellInfoListRate(sCellInfoListRateDisabled);
+        mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
+
+    }
+
+    private void restoreFromBundle(Bundle b) {
+        if (b == null) {
+            return;
+        }
+
+        mPingHostnameResultV4 = b.getString("mPingHostnameResultV4", "");
+        mPingHostnameResultV6 = b.getString("mPingHostnameResultV6", "");
+        mHttpClientTestResult = b.getString("mHttpClientTestResult", "");
+
+        mPingHostnameV4.setText(mPingHostnameResultV4);
+        mPingHostnameV6.setText(mPingHostnameResultV6);
+        mHttpClientTest.setText(mHttpClientTestResult);
+
+        mPreferredNetworkTypeResult = b.getInt("mPreferredNetworkTypeResult",
+                PREFERRED_NETWORK_LABELS.length - 1);
+
+        mSelectedPhoneIndex = b.getInt("mSelectedPhoneIndex", 0);
+
+        mCellInfoRefreshRateIndex = b.getInt("mCellInfoRefreshRateIndex", 0);
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        outState.putString("mPingHostnameResultV4", mPingHostnameResultV4);
+        outState.putString("mPingHostnameResultV6", mPingHostnameResultV6);
+        outState.putString("mHttpClientTestResult", mHttpClientTestResult);
+
+        outState.putInt("mPreferredNetworkTypeResult", mPreferredNetworkTypeResult);
+        outState.putInt("mSelectedPhoneIndex", mSelectedPhoneIndex);
+        outState.putInt("mCellInfoRefreshRateIndex", mCellInfoRefreshRateIndex);
+
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        menu.add(0, MENU_ITEM_SELECT_BAND, 0, R.string.radio_info_band_mode_label)
+                .setOnMenuItemClickListener(mSelectBandCallback)
+                .setAlphabeticShortcut('b');
+        menu.add(1, MENU_ITEM_VIEW_ADN, 0,
+                R.string.radioInfo_menu_viewADN).setOnMenuItemClickListener(mViewADNCallback);
+        menu.add(1, MENU_ITEM_VIEW_FDN, 0,
+                R.string.radioInfo_menu_viewFDN).setOnMenuItemClickListener(mViewFDNCallback);
+        menu.add(1, MENU_ITEM_VIEW_SDN, 0,
+                R.string.radioInfo_menu_viewSDN).setOnMenuItemClickListener(mViewSDNCallback);
+        if (ImsManager.isImsSupportedOnDevice(mPhone.getContext())) {
+            menu.add(1, MENU_ITEM_GET_IMS_STATUS,
+                    0, R.string.radioInfo_menu_getIMS).setOnMenuItemClickListener(mGetImsStatus);
+        }
+        menu.add(1, MENU_ITEM_TOGGLE_DATA,
+                0, R.string.radio_info_data_connection_disable)
+                .setOnMenuItemClickListener(mToggleData);
+        return true;
+    }
+
+    @Override
+    public boolean onPrepareOptionsMenu(Menu menu) {
+        // Get the TOGGLE DATA menu item in the right state.
+        MenuItem item = menu.findItem(MENU_ITEM_TOGGLE_DATA);
+        int state = mTelephonyManager.getDataState();
+        boolean visible = true;
+
+        switch (state) {
+            case TelephonyManager.DATA_CONNECTED:
+            case TelephonyManager.DATA_SUSPENDED:
+                item.setTitle(R.string.radio_info_data_connection_disable);
+                break;
+            case TelephonyManager.DATA_DISCONNECTED:
+                item.setTitle(R.string.radio_info_data_connection_enable);
+                break;
+            default:
+                visible = false;
+                break;
+        }
+        item.setVisible(visible);
+        return true;
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        mQueuedWork.shutdown();
+    }
+
+    // returns array of string labels for each phone index. The array index is equal to the phone
+    // index.
+    private static String[] getPhoneIndexLabels(TelephonyManager tm) {
+        int phones = tm.getPhoneCount();
+        String[] labels = new String[phones];
+        for (int i = 0; i < phones; i++) {
+            labels[i] = "Phone " + i;
+        }
+        return labels;
+    }
+
+    private void unregisterPhoneStateListener() {
+        mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
+        mPhone.unregisterForPhysicalChannelConfig(mHandler);
+
+        // clear all fields so they are blank until the next listener event occurs
+        mOperatorName.setText("");
+        mGprsState.setText("");
+        mDataNetwork.setText("");
+        mVoiceNetwork.setText("");
+        mSent.setText("");
+        mReceived.setText("");
+        mCallState.setText("");
+        mLocation.setText("");
+        mMwiValue = false;
+        mMwi.setText("");
+        mCfiValue = false;
+        mCfi.setText("");
+        mCellInfo.setText("");
+        mDBm.setText("");
+        mGsmState.setText("");
+        mRoamingState.setText("");
+        mPhyChanConfig.setText("");
+    }
+
+    // register mPhoneStateListener for relevant fields using the current TelephonyManager
+    private void registerPhoneStateListener() {
+        mPhoneStateListener = new RadioInfoPhoneStateListener();
+        mTelephonyManager.listen(mPhoneStateListener,
+                  PhoneStateListener.LISTEN_CALL_STATE
+        //b/27803938 - RadioInfo currently cannot read PRECISE_CALL_STATE
+        //      | PhoneStateListener.LISTEN_PRECISE_CALL_STATE
+                | PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
+                | PhoneStateListener.LISTEN_DATA_ACTIVITY
+                | PhoneStateListener.LISTEN_CELL_LOCATION
+                | PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR
+                | PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR
+                | PhoneStateListener.LISTEN_CELL_INFO
+                | PhoneStateListener.LISTEN_SERVICE_STATE
+                | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
+    }
+
+    private void updateDnsCheckState() {
+        //FIXME: Replace with a TelephonyManager call
+        mDnsCheckState.setText(mPhone.isDnsCheckDisabled()
+                ? "0.0.0.0 allowed" : "0.0.0.0 not allowed");
+    }
+
+    private void updateBandwidths(int dlbw, int ulbw) {
+        dlbw = (dlbw < 0 || dlbw == Integer.MAX_VALUE) ? -1 : dlbw;
+        ulbw = (ulbw < 0 || ulbw == Integer.MAX_VALUE) ? -1 : ulbw;
+        mDownlinkKbps.setText(String.format("%-5d", dlbw));
+        mUplinkKbps.setText(String.format("%-5d", ulbw));
+    }
+
+
+    private void updateSignalStrength(SignalStrength signalStrength) {
+        Resources r = getResources();
+
+        int signalDbm = signalStrength.getDbm();
+
+        int signalAsu = signalStrength.getAsuLevel();
+
+        if (-1 == signalAsu) signalAsu = 0;
+
+        mDBm.setText(String.valueOf(signalDbm) + " "
+                + r.getString(R.string.radioInfo_display_dbm) + "   "
+                + String.valueOf(signalAsu) + " "
+                + r.getString(R.string.radioInfo_display_asu));
+    }
+
+    private void updateLocation(CellLocation location) {
+        Resources r = getResources();
+        if (location instanceof GsmCellLocation) {
+            GsmCellLocation loc = (GsmCellLocation) location;
+            int lac = loc.getLac();
+            int cid = loc.getCid();
+            mLocation.setText(r.getString(R.string.radioInfo_lac) + " = "
+                    + ((lac == -1) ? "unknown" : Integer.toHexString(lac))
+                    + "   "
+                    + r.getString(R.string.radioInfo_cid) + " = "
+                    + ((cid == -1) ? "unknown" : Integer.toHexString(cid)));
+        } else if (location instanceof CdmaCellLocation) {
+            CdmaCellLocation loc = (CdmaCellLocation) location;
+            int bid = loc.getBaseStationId();
+            int sid = loc.getSystemId();
+            int nid = loc.getNetworkId();
+            int lat = loc.getBaseStationLatitude();
+            int lon = loc.getBaseStationLongitude();
+            mLocation.setText("BID = "
+                    + ((bid == -1) ? "unknown" : Integer.toHexString(bid))
+                    + "   "
+                    + "SID = "
+                    + ((sid == -1) ? "unknown" : Integer.toHexString(sid))
+                    + "   "
+                    + "NID = "
+                    + ((nid == -1) ? "unknown" : Integer.toHexString(nid))
+                    + "\n"
+                    + "LAT = "
+                    + ((lat == -1) ? "unknown" : Integer.toHexString(lat))
+                    + "   "
+                    + "LONG = "
+                    + ((lon == -1) ? "unknown" : Integer.toHexString(lon)));
+        } else {
+            mLocation.setText("unknown");
+        }
+
+
+    }
+
+    private String getCellInfoDisplayString(int i) {
+        return (i != Integer.MAX_VALUE) ? Integer.toString(i) : "";
+    }
+
+    private String getCellInfoDisplayString(long i) {
+        return (i != Long.MAX_VALUE) ? Long.toString(i) : "";
+    }
+
+    private String getConnectionStatusString(CellInfo ci) {
+        String regStr = "";
+        String connStatStr = "";
+        String connector = "";
+
+        if (ci.isRegistered()) {
+            regStr = "R";
+        }
+        switch (ci.getCellConnectionStatus()) {
+            case CellInfo.CONNECTION_PRIMARY_SERVING: connStatStr = "P"; break;
+            case CellInfo.CONNECTION_SECONDARY_SERVING: connStatStr = "S"; break;
+            case CellInfo.CONNECTION_NONE: connStatStr = "N"; break;
+            case CellInfo.CONNECTION_UNKNOWN: /* Field is unsupported */ break;
+            default: break;
+        }
+        if (!TextUtils.isEmpty(regStr) && !TextUtils.isEmpty(connStatStr)) {
+            connector = "+";
+        }
+
+        return regStr + connector + connStatStr;
+    }
+
+    private String buildCdmaInfoString(CellInfoCdma ci) {
+        CellIdentityCdma cidCdma = ci.getCellIdentity();
+        CellSignalStrengthCdma ssCdma = ci.getCellSignalStrength();
+
+        return String.format("%-3.3s %-5.5s %-5.5s %-5.5s %-6.6s %-6.6s %-6.6s %-6.6s %-5.5s",
+                getConnectionStatusString(ci),
+                getCellInfoDisplayString(cidCdma.getSystemId()),
+                getCellInfoDisplayString(cidCdma.getNetworkId()),
+                getCellInfoDisplayString(cidCdma.getBasestationId()),
+                getCellInfoDisplayString(ssCdma.getCdmaDbm()),
+                getCellInfoDisplayString(ssCdma.getCdmaEcio()),
+                getCellInfoDisplayString(ssCdma.getEvdoDbm()),
+                getCellInfoDisplayString(ssCdma.getEvdoEcio()),
+                getCellInfoDisplayString(ssCdma.getEvdoSnr()));
+    }
+
+    private String buildGsmInfoString(CellInfoGsm ci) {
+        CellIdentityGsm cidGsm = ci.getCellIdentity();
+        CellSignalStrengthGsm ssGsm = ci.getCellSignalStrength();
+
+        return String.format("%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-6.6s %-4.4s %-4.4s\n",
+                getConnectionStatusString(ci),
+                getCellInfoDisplayString(cidGsm.getMcc()),
+                getCellInfoDisplayString(cidGsm.getMnc()),
+                getCellInfoDisplayString(cidGsm.getLac()),
+                getCellInfoDisplayString(cidGsm.getCid()),
+                getCellInfoDisplayString(cidGsm.getArfcn()),
+                getCellInfoDisplayString(cidGsm.getBsic()),
+                getCellInfoDisplayString(ssGsm.getDbm()));
+    }
+
+    private String buildLteInfoString(CellInfoLte ci) {
+        CellIdentityLte cidLte = ci.getCellIdentity();
+        CellSignalStrengthLte ssLte = ci.getCellSignalStrength();
+
+        return String.format(
+                "%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-3.3s %-6.6s %-2.2s %-4.4s %-4.4s %-2.2s\n",
+                getConnectionStatusString(ci),
+                getCellInfoDisplayString(cidLte.getMcc()),
+                getCellInfoDisplayString(cidLte.getMnc()),
+                getCellInfoDisplayString(cidLte.getTac()),
+                getCellInfoDisplayString(cidLte.getCi()),
+                getCellInfoDisplayString(cidLte.getPci()),
+                getCellInfoDisplayString(cidLte.getEarfcn()),
+                getCellInfoDisplayString(cidLte.getBandwidth()),
+                getCellInfoDisplayString(ssLte.getDbm()),
+                getCellInfoDisplayString(ssLte.getRsrq()),
+                getCellInfoDisplayString(ssLte.getTimingAdvance()));
+    }
+
+    private String buildWcdmaInfoString(CellInfoWcdma ci) {
+        CellIdentityWcdma cidWcdma = ci.getCellIdentity();
+        CellSignalStrengthWcdma ssWcdma = ci.getCellSignalStrength();
+
+        return String.format("%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-6.6s %-3.3s %-4.4s\n",
+                getConnectionStatusString(ci),
+                getCellInfoDisplayString(cidWcdma.getMcc()),
+                getCellInfoDisplayString(cidWcdma.getMnc()),
+                getCellInfoDisplayString(cidWcdma.getLac()),
+                getCellInfoDisplayString(cidWcdma.getCid()),
+                getCellInfoDisplayString(cidWcdma.getUarfcn()),
+                getCellInfoDisplayString(cidWcdma.getPsc()),
+                getCellInfoDisplayString(ssWcdma.getDbm()));
+    }
+
+    private String buildCellInfoString(List<CellInfo> arrayCi) {
+        String value = new String();
+        StringBuilder cdmaCells = new StringBuilder(),
+                gsmCells = new StringBuilder(),
+                lteCells = new StringBuilder(),
+                wcdmaCells = new StringBuilder();
+
+        if (arrayCi != null) {
+            for (CellInfo ci : arrayCi) {
+
+                if (ci instanceof CellInfoLte) {
+                    lteCells.append(buildLteInfoString((CellInfoLte) ci));
+                } else if (ci instanceof CellInfoWcdma) {
+                    wcdmaCells.append(buildWcdmaInfoString((CellInfoWcdma) ci));
+                } else if (ci instanceof CellInfoGsm) {
+                    gsmCells.append(buildGsmInfoString((CellInfoGsm) ci));
+                } else if (ci instanceof CellInfoCdma) {
+                    cdmaCells.append(buildCdmaInfoString((CellInfoCdma) ci));
+                }
+            }
+            if (lteCells.length() != 0) {
+                value += String.format(
+                        "LTE\n%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-3.3s"
+                                + " %-6.6s %-2.2s %-4.4s %-4.4s %-2.2s\n",
+                        "SRV", "MCC", "MNC", "TAC", "CID", "PCI",
+                        "EARFCN", "BW", "RSRP", "RSRQ", "TA");
+                value += lteCells.toString();
+            }
+            if (wcdmaCells.length() != 0) {
+                value += String.format(
+                        "WCDMA\n%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-6.6s %-3.3s %-4.4s\n",
+                        "SRV", "MCC", "MNC", "LAC", "CID", "UARFCN", "PSC", "RSCP");
+                value += wcdmaCells.toString();
+            }
+            if (gsmCells.length() != 0) {
+                value += String.format(
+                        "GSM\n%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-6.6s %-4.4s %-4.4s\n",
+                        "SRV", "MCC", "MNC", "LAC", "CID", "ARFCN", "BSIC", "RSSI");
+                value += gsmCells.toString();
+            }
+            if (cdmaCells.length() != 0) {
+                value += String.format(
+                        "CDMA/EVDO\n%-3.3s %-5.5s %-5.5s %-5.5s"
+                                + " %-6.6s %-6.6s %-6.6s %-6.6s %-5.5s\n",
+                        "SRV", "SID", "NID", "BSID",
+                        "C-RSSI", "C-ECIO", "E-RSSI", "E-ECIO", "E-SNR");
+                value += cdmaCells.toString();
+            }
+        } else {
+            value = "unknown";
+        }
+
+        return value.toString();
+    }
+
+    private void updateCellInfo(List<CellInfo> arrayCi) {
+        mCellInfo.setText(buildCellInfoString(arrayCi));
+    }
+
+    private void updateSubscriptionIds() {
+        mSubscriptionId.setText(Integer.toString(mPhone.getSubId()));
+        mDds.setText(Integer.toString(SubscriptionManager.getDefaultDataSubscriptionId()));
+    }
+
+    private void updateMessageWaiting() {
+        mMwi.setText(String.valueOf(mMwiValue));
+    }
+
+    private void updateCallRedirect() {
+        mCfi.setText(String.valueOf(mCfiValue));
+    }
+
+
+    private void updateServiceState(ServiceState serviceState) {
+        int state = serviceState.getState();
+        Resources r = getResources();
+        String display = r.getString(R.string.radioInfo_unknown);
+
+        switch (state) {
+            case ServiceState.STATE_IN_SERVICE:
+                display = r.getString(R.string.radioInfo_service_in);
+                break;
+            case ServiceState.STATE_OUT_OF_SERVICE:
+            case ServiceState.STATE_EMERGENCY_ONLY:
+                display = r.getString(R.string.radioInfo_service_emergency);
+                break;
+            case ServiceState.STATE_POWER_OFF:
+                display = r.getString(R.string.radioInfo_service_off);
+                break;
+        }
+
+        mGsmState.setText(display);
+
+        if (serviceState.getRoaming()) {
+            mRoamingState.setText(R.string.radioInfo_roaming_in);
+        } else {
+            mRoamingState.setText(R.string.radioInfo_roaming_not);
+        }
+
+        mOperatorName.setText(serviceState.getOperatorAlphaLong());
+    }
+
+    private void updatePhoneState(int state) {
+        Resources r = getResources();
+        String display = r.getString(R.string.radioInfo_unknown);
+
+        switch (state) {
+            case TelephonyManager.CALL_STATE_IDLE:
+                display = r.getString(R.string.radioInfo_phone_idle);
+                break;
+            case TelephonyManager.CALL_STATE_RINGING:
+                display = r.getString(R.string.radioInfo_phone_ringing);
+                break;
+            case TelephonyManager.CALL_STATE_OFFHOOK:
+                display = r.getString(R.string.radioInfo_phone_offhook);
+                break;
+        }
+
+        mCallState.setText(display);
+    }
+
+    private void updateDataState() {
+        int state = mTelephonyManager.getDataState();
+        Resources r = getResources();
+        String display = r.getString(R.string.radioInfo_unknown);
+
+        switch (state) {
+            case TelephonyManager.DATA_CONNECTED:
+                display = r.getString(R.string.radioInfo_data_connected);
+                break;
+            case TelephonyManager.DATA_CONNECTING:
+                display = r.getString(R.string.radioInfo_data_connecting);
+                break;
+            case TelephonyManager.DATA_DISCONNECTED:
+                display = r.getString(R.string.radioInfo_data_disconnected);
+                break;
+            case TelephonyManager.DATA_SUSPENDED:
+                display = r.getString(R.string.radioInfo_data_suspended);
+                break;
+        }
+
+        mGprsState.setText(display);
+    }
+
+    private void updateNetworkType() {
+        if (mPhone != null) {
+            ServiceState ss = mPhone.getServiceState();
+            mDataNetwork.setText(ServiceState.rilRadioTechnologyToString(
+                    mPhone.getServiceState().getRilDataRadioTechnology()));
+            mVoiceNetwork.setText(ServiceState.rilRadioTechnologyToString(
+                    mPhone.getServiceState().getRilVoiceRadioTechnology()));
+        }
+    }
+
+    private void updateProperties() {
+        String s;
+        Resources r = getResources();
+
+        s = mPhone.getDeviceId();
+        if (s == null) s = r.getString(R.string.radioInfo_unknown);
+        mDeviceId.setText(s);
+
+        s = mPhone.getSubscriberId();
+        if (s == null) s = r.getString(R.string.radioInfo_unknown);
+        mSubscriberId.setText(s);
+
+        //FIXME: Replace with a TelephonyManager call
+        s = mPhone.getLine1Number();
+        if (s == null) s = r.getString(R.string.radioInfo_unknown);
+        mLine1Number.setText(s);
+    }
+
+    private void updateDataStats2() {
+        Resources r = getResources();
+
+        long txPackets = TrafficStats.getMobileTxPackets();
+        long rxPackets = TrafficStats.getMobileRxPackets();
+        long txBytes   = TrafficStats.getMobileTxBytes();
+        long rxBytes   = TrafficStats.getMobileRxBytes();
+
+        String packets = r.getString(R.string.radioInfo_display_packets);
+        String bytes   = r.getString(R.string.radioInfo_display_bytes);
+
+        mSent.setText(txPackets + " " + packets + ", " + txBytes + " " + bytes);
+        mReceived.setText(rxPackets + " " + packets + ", " + rxBytes + " " + bytes);
+    }
+
+    /**
+     *  Ping a host name
+     */
+    private void pingHostname() {
+        try {
+            try {
+                Process p4 = Runtime.getRuntime().exec("ping -c 1 www.google.com");
+                int status4 = p4.waitFor();
+                if (status4 == 0) {
+                    mPingHostnameResultV4 = "Pass";
+                } else {
+                    mPingHostnameResultV4 = String.format("Fail(%d)", status4);
+                }
+            } catch (IOException e) {
+                mPingHostnameResultV4 = "Fail: IOException";
+            }
+            try {
+                Process p6 = Runtime.getRuntime().exec("ping6 -c 1 www.google.com");
+                int status6 = p6.waitFor();
+                if (status6 == 0) {
+                    mPingHostnameResultV6 = "Pass";
+                } else {
+                    mPingHostnameResultV6 = String.format("Fail(%d)", status6);
+                }
+            } catch (IOException e) {
+                mPingHostnameResultV6 = "Fail: IOException";
+            }
+        } catch (InterruptedException e) {
+            mPingHostnameResultV4 = mPingHostnameResultV6 = "Fail: InterruptedException";
+        }
+    }
+
+    /**
+     * This function checks for basic functionality of HTTP Client.
+     */
+    private void httpClientTest() {
+        HttpURLConnection urlConnection = null;
+        try {
+            // TODO: Hardcoded for now, make it UI configurable
+            URL url = new URL("https://www.google.com");
+            urlConnection = (HttpURLConnection) url.openConnection();
+            if (urlConnection.getResponseCode() == 200) {
+                mHttpClientTestResult = "Pass";
+            } else {
+                mHttpClientTestResult = "Fail: Code: " + urlConnection.getResponseMessage();
+            }
+        } catch (IOException e) {
+            mHttpClientTestResult = "Fail: IOException";
+        } finally {
+            if (urlConnection != null) {
+                urlConnection.disconnect();
+            }
+        }
+    }
+
+    private void refreshSmsc() {
+        mQueuedWork.execute(new Runnable() {
+            public void run() {
+                //FIXME: Replace with a TelephonyManager call
+                mPhone.getSmscAddress(mHandler.obtainMessage(EVENT_QUERY_SMSC_DONE));
+            }
+        });
+    }
+
+    private void updateAllCellInfo() {
+
+        mCellInfo.setText("");
+        mLocation.setText("");
+
+        final Runnable updateAllCellInfoResults = new Runnable() {
+            public void run() {
+                updateLocation(mCellLocationResult);
+                updateCellInfo(mCellInfoResult);
+            }
+        };
+
+        mQueuedWork.execute(new Runnable() {
+            @Override
+            public void run() {
+                mCellInfoResult = mTelephonyManager.getAllCellInfo();
+                mCellLocationResult = mTelephonyManager.getCellLocation();
+
+                mHandler.post(updateAllCellInfoResults);
+            }
+        });
+    }
+
+    private void updatePingState() {
+        // Set all to unknown since the threads will take a few secs to update.
+        mPingHostnameResultV4 = getResources().getString(R.string.radioInfo_unknown);
+        mPingHostnameResultV6 = getResources().getString(R.string.radioInfo_unknown);
+        mHttpClientTestResult = getResources().getString(R.string.radioInfo_unknown);
+
+        mPingHostnameV4.setText(mPingHostnameResultV4);
+        mPingHostnameV6.setText(mPingHostnameResultV6);
+        mHttpClientTest.setText(mHttpClientTestResult);
+
+        final Runnable updatePingResults = new Runnable() {
+            public void run() {
+                mPingHostnameV4.setText(mPingHostnameResultV4);
+                mPingHostnameV6.setText(mPingHostnameResultV6);
+                mHttpClientTest.setText(mHttpClientTestResult);
+            }
+        };
+
+        Thread hostname = new Thread() {
+            @Override
+            public void run() {
+                pingHostname();
+                mHandler.post(updatePingResults);
+            }
+        };
+        hostname.start();
+
+        Thread httpClient = new Thread() {
+            @Override
+            public void run() {
+                httpClientTest();
+                mHandler.post(updatePingResults);
+            }
+        };
+        httpClient.start();
+    }
+
+    private MenuItem.OnMenuItemClickListener mViewADNCallback =
+            new MenuItem.OnMenuItemClickListener() {
+        public boolean onMenuItemClick(MenuItem item) {
+            Intent intent = new Intent(Intent.ACTION_VIEW);
+            // XXX We need to specify the component here because if we don't
+            // the activity manager will try to resolve the type by calling
+            // the content provider, which causes it to be loaded in a process
+            // other than the Dialer process, which causes a lot of stuff to
+            // break.
+            intent.setClassName("com.android.phone", "com.android.phone.SimContacts");
+            startActivity(intent);
+            return true;
+        }
+    };
+
+    private MenuItem.OnMenuItemClickListener mViewFDNCallback =
+            new MenuItem.OnMenuItemClickListener() {
+        public boolean onMenuItemClick(MenuItem item) {
+            Intent intent = new Intent(Intent.ACTION_VIEW);
+            // XXX We need to specify the component here because if we don't
+            // the activity manager will try to resolve the type by calling
+            // the content provider, which causes it to be loaded in a process
+            // other than the Dialer process, which causes a lot of stuff to
+            // break.
+            intent.setClassName("com.android.phone", "com.android.phone.settings.fdn.FdnList");
+            startActivity(intent);
+            return true;
+        }
+    };
+
+    private MenuItem.OnMenuItemClickListener mViewSDNCallback =
+            new MenuItem.OnMenuItemClickListener() {
+        public boolean onMenuItemClick(MenuItem item) {
+            Intent intent = new Intent(
+                    Intent.ACTION_VIEW, Uri.parse("content://icc/sdn"));
+            // XXX We need to specify the component here because if we don't
+            // the activity manager will try to resolve the type by calling
+            // the content provider, which causes it to be loaded in a process
+            // other than the Dialer process, which causes a lot of stuff to
+            // break.
+            intent.setClassName("com.android.phone", "com.android.phone.ADNList");
+            startActivity(intent);
+            return true;
+        }
+    };
+
+    private MenuItem.OnMenuItemClickListener mGetImsStatus =
+            new MenuItem.OnMenuItemClickListener() {
+        public boolean onMenuItemClick(MenuItem item) {
+            boolean isImsRegistered = mPhone.isImsRegistered();
+            boolean availableVolte = mPhone.isVolteEnabled();
+            boolean availableWfc = mPhone.isWifiCallingEnabled();
+            boolean availableVt = mPhone.isVideoEnabled();
+            boolean availableUt = mPhone.isUtEnabled();
+
+            final String imsRegString = isImsRegistered
+                    ? getString(R.string.radio_info_ims_reg_status_registered)
+                    : getString(R.string.radio_info_ims_reg_status_not_registered);
+
+            final String available = getString(R.string.radio_info_ims_feature_status_available);
+            final String unavailable = getString(
+                    R.string.radio_info_ims_feature_status_unavailable);
+
+            String imsStatus = getString(R.string.radio_info_ims_reg_status,
+                    imsRegString,
+                    availableVolte ? available : unavailable,
+                    availableWfc ? available : unavailable,
+                    availableVt ? available : unavailable,
+                    availableUt ? available : unavailable);
+
+            AlertDialog imsDialog = new AlertDialog.Builder(RadioInfo.this)
+                    .setMessage(imsStatus)
+                    .setTitle(getString(R.string.radio_info_ims_reg_status_title))
+                    .create();
+
+            imsDialog.show();
+
+            return true;
+        }
+    };
+
+    private MenuItem.OnMenuItemClickListener mSelectBandCallback =
+            new MenuItem.OnMenuItemClickListener() {
+        public boolean onMenuItemClick(MenuItem item) {
+            Intent intent = new Intent();
+            intent.setClass(RadioInfo.this, BandMode.class);
+            startActivity(intent);
+            return true;
+        }
+    };
+
+    private MenuItem.OnMenuItemClickListener mToggleData =
+            new MenuItem.OnMenuItemClickListener() {
+        public boolean onMenuItemClick(MenuItem item) {
+            int state = mTelephonyManager.getDataState();
+            switch (state) {
+                case TelephonyManager.DATA_CONNECTED:
+                    mTelephonyManager.setDataEnabled(false);
+                    break;
+                case TelephonyManager.DATA_DISCONNECTED:
+                    mTelephonyManager.setDataEnabled(true);
+                    break;
+                default:
+                    // do nothing
+                    break;
+            }
+            return true;
+        }
+    };
+
+    private boolean isRadioOn() {
+        //FIXME: Replace with a TelephonyManager call
+        return mPhone.getServiceState().getState() != ServiceState.STATE_POWER_OFF;
+    }
+
+    private void updateRadioPowerState() {
+        //delightful hack to prevent on-checked-changed calls from
+        //actually forcing the radio preference to its transient/current value.
+        mRadioPowerOnSwitch.setOnCheckedChangeListener(null);
+        mRadioPowerOnSwitch.setChecked(isRadioOn());
+        mRadioPowerOnSwitch.setOnCheckedChangeListener(mRadioPowerOnChangeListener);
+    }
+
+    void setImsVolteProvisionedState(boolean state) {
+        Log.d(TAG, "setImsVolteProvisioned state: " + ((state) ? "on" : "off"));
+        setImsConfigProvisionedState(IMS_VOLTE_PROVISIONED_CONFIG_ID, state);
+    }
+
+    void setImsVtProvisionedState(boolean state) {
+        Log.d(TAG, "setImsVtProvisioned() state: " + ((state) ? "on" : "off"));
+        setImsConfigProvisionedState(IMS_VT_PROVISIONED_CONFIG_ID, state);
+    }
+
+    void setImsWfcProvisionedState(boolean state) {
+        Log.d(TAG, "setImsWfcProvisioned() state: " + ((state) ? "on" : "off"));
+        setImsConfigProvisionedState(IMS_WFC_PROVISIONED_CONFIG_ID, state);
+    }
+
+    void setEabProvisionedState(boolean state) {
+        Log.d(TAG, "setEabProvisioned() state: " + ((state) ? "on" : "off"));
+        setImsConfigProvisionedState(EAB_PROVISIONED_CONFIG_ID, state);
+    }
+
+    void setImsConfigProvisionedState(int configItem, boolean state) {
+        if (mPhone != null && mImsManager != null) {
+            mQueuedWork.execute(new Runnable() {
+                public void run() {
+                    try {
+                        mImsManager.getConfigInterface().setProvisionedValue(
+                                configItem, state ? 1 : 0);
+                    } catch (ImsException e) {
+                        Log.e(TAG, "setImsConfigProvisioned() exception:", e);
+                    }
+                }
+            });
+        }
+    }
+
+    OnCheckedChangeListener mRadioPowerOnChangeListener = new OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+            // TODO: b/145681511. Within current design, radio power on all of the phones need
+            // to be controlled at the same time.
+            Phone[] phones = PhoneFactory.getPhones();
+            if (phones == null) {
+                return;
+            }
+            log("toggle radio power: phone*" + phones.length + " " + (isRadioOn() ? "on" : "off"));
+            for (int phoneIndex = 0; phoneIndex < phones.length; phoneIndex++) {
+                if (phones[phoneIndex] != null) {
+                    phones[phoneIndex].setRadioPower(isChecked);
+                }
+            }
+        }
+    };
+
+    private boolean isImsVolteProvisioned() {
+        if (mPhone != null && mImsManager != null) {
+            return mImsManager.isVolteEnabledByPlatform(mPhone.getContext())
+                && mImsManager.isVolteProvisionedOnDevice(mPhone.getContext());
+        }
+        return false;
+    }
+
+    OnCheckedChangeListener mImsVolteCheckedChangeListener = new OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+            setImsVolteProvisionedState(isChecked);
+        }
+    };
+
+    private boolean isImsVtProvisioned() {
+        if (mPhone != null && mImsManager != null) {
+            return mImsManager.isVtEnabledByPlatform(mPhone.getContext())
+                && mImsManager.isVtProvisionedOnDevice(mPhone.getContext());
+        }
+        return false;
+    }
+
+    OnCheckedChangeListener mImsVtCheckedChangeListener = new OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+            setImsVtProvisionedState(isChecked);
+        }
+    };
+
+    private boolean isImsWfcProvisioned() {
+        if (mPhone != null && mImsManager != null) {
+            return mImsManager.isWfcEnabledByPlatform(mPhone.getContext())
+                && mImsManager.isWfcProvisionedOnDevice(mPhone.getContext());
+        }
+        return false;
+    }
+
+    OnCheckedChangeListener mImsWfcCheckedChangeListener = new OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+            setImsWfcProvisionedState(isChecked);
+        }
+    };
+
+    private boolean isEabProvisioned() {
+        return isFeatureProvisioned(EAB_PROVISIONED_CONFIG_ID, false);
+    }
+
+    OnCheckedChangeListener mEabCheckedChangeListener = new OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+            setEabProvisionedState(isChecked);
+        }
+    };
+
+    private boolean isFeatureProvisioned(int featureId, boolean defaultValue) {
+        boolean provisioned = defaultValue;
+        if (mImsManager != null) {
+            try {
+                ImsConfig imsConfig = mImsManager.getConfigInterface();
+                if (imsConfig != null) {
+                    provisioned =
+                            (imsConfig.getProvisionedValue(featureId)
+                                    == ImsConfig.FeatureValueConstants.ON);
+                }
+            } catch (ImsException ex) {
+                Log.e(TAG, "isFeatureProvisioned() exception:", ex);
+            }
+        }
+
+        log("isFeatureProvisioned() featureId=" + featureId + " provisioned=" + provisioned);
+        return provisioned;
+    }
+
+    private static boolean isEabEnabledByPlatform(Context context) {
+        if (context != null) {
+            CarrierConfigManager configManager = (CarrierConfigManager)
+                    context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
+            if (configManager != null && configManager.getConfig().getBoolean(
+                        CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private void updateImsProvisionedState() {
+        if (!ImsManager.isImsSupportedOnDevice(mPhone.getContext())) {
+            return;
+        }
+        log("updateImsProvisionedState isImsVolteProvisioned()=" + isImsVolteProvisioned());
+        //delightful hack to prevent on-checked-changed calls from
+        //actually forcing the ims provisioning to its transient/current value.
+        mImsVolteProvisionedSwitch.setOnCheckedChangeListener(null);
+        mImsVolteProvisionedSwitch.setChecked(isImsVolteProvisioned());
+        mImsVolteProvisionedSwitch.setOnCheckedChangeListener(mImsVolteCheckedChangeListener);
+        mImsVolteProvisionedSwitch.setEnabled(!IS_USER_BUILD
+                && mImsManager.isVolteEnabledByPlatform(mPhone.getContext()));
+
+        mImsVtProvisionedSwitch.setOnCheckedChangeListener(null);
+        mImsVtProvisionedSwitch.setChecked(isImsVtProvisioned());
+        mImsVtProvisionedSwitch.setOnCheckedChangeListener(mImsVtCheckedChangeListener);
+        mImsVtProvisionedSwitch.setEnabled(!IS_USER_BUILD
+                && mImsManager.isVtEnabledByPlatform(mPhone.getContext()));
+
+        mImsWfcProvisionedSwitch.setOnCheckedChangeListener(null);
+        mImsWfcProvisionedSwitch.setChecked(isImsWfcProvisioned());
+        mImsWfcProvisionedSwitch.setOnCheckedChangeListener(mImsWfcCheckedChangeListener);
+        mImsWfcProvisionedSwitch.setEnabled(!IS_USER_BUILD
+                && mImsManager.isWfcEnabledByPlatform(mPhone.getContext()));
+
+        mEabProvisionedSwitch.setOnCheckedChangeListener(null);
+        mEabProvisionedSwitch.setChecked(isEabProvisioned());
+        mEabProvisionedSwitch.setOnCheckedChangeListener(mEabCheckedChangeListener);
+        mEabProvisionedSwitch.setEnabled(!IS_USER_BUILD
+                && isEabEnabledByPlatform(mPhone.getContext()));
+    }
+
+    OnClickListener mDnsCheckButtonHandler = new OnClickListener() {
+        public void onClick(View v) {
+            //FIXME: Replace with a TelephonyManager call
+            mPhone.disableDnsCheck(!mPhone.isDnsCheckDisabled());
+            updateDnsCheckState();
+        }
+    };
+
+    OnClickListener mOemInfoButtonHandler = new OnClickListener() {
+        public void onClick(View v) {
+            Intent intent = new Intent(OEM_RADIO_INFO_INTENT);
+            try {
+                startActivity(intent);
+            } catch (android.content.ActivityNotFoundException ex) {
+                log("OEM-specific Info/Settings Activity Not Found : " + ex);
+                // If the activity does not exist, there are no OEM
+                // settings, and so we can just do nothing...
+            }
+        }
+    };
+
+    OnClickListener mPingButtonHandler = new OnClickListener() {
+        public void onClick(View v) {
+            updatePingState();
+        }
+    };
+
+    OnClickListener mUpdateSmscButtonHandler = new OnClickListener() {
+        public void onClick(View v) {
+            mUpdateSmscButton.setEnabled(false);
+            mQueuedWork.execute(new Runnable() {
+                public void run() {
+                    mPhone.setSmscAddress(mSmsc.getText().toString(),
+                            mHandler.obtainMessage(EVENT_UPDATE_SMSC_DONE));
+                }
+            });
+        }
+    };
+
+    OnClickListener mRefreshSmscButtonHandler = new OnClickListener() {
+        public void onClick(View v) {
+            refreshSmsc();
+        }
+    };
+
+    OnClickListener mCarrierProvisioningButtonHandler = new OnClickListener() {
+        public void onClick(View v) {
+            final Intent intent = new Intent("com.android.settings.CARRIER_PROVISIONING");
+            final ComponentName serviceComponent = ComponentName.unflattenFromString(
+                    "com.android.omadm.service/.DMIntentReceiver");
+            intent.setComponent(serviceComponent);
+            sendBroadcast(intent);
+        }
+    };
+
+    OnClickListener mTriggerCarrierProvisioningButtonHandler = new OnClickListener() {
+        public void onClick(View v) {
+            final Intent intent = new Intent("com.android.settings.TRIGGER_CARRIER_PROVISIONING");
+            final ComponentName serviceComponent = ComponentName.unflattenFromString(
+                    "com.android.omadm.service/.DMIntentReceiver");
+            intent.setComponent(serviceComponent);
+            sendBroadcast(intent);
+        }
+    };
+
+    AdapterView.OnItemSelectedListener mPreferredNetworkHandler =
+            new AdapterView.OnItemSelectedListener() {
+
+        public void onItemSelected(AdapterView parent, View v, int pos, long id) {
+            if (mPreferredNetworkTypeResult != pos && pos >= 0
+                    && pos <= PREFERRED_NETWORK_LABELS.length - 2) {
+                mPreferredNetworkTypeResult = pos;
+
+                // TODO: Possibly migrate this to TelephonyManager.setPreferredNetworkType()
+                // which today still has some issues (mostly that the "set" is conditional
+                // on a successful modem call, which is not what we want). Instead we always
+                // want this setting to be set, so that if the radio hiccups and this setting
+                // is for some reason unsuccessful, future calls to the radio will reflect
+                // the users's preference which is set here.
+                final int subId = mPhone.getSubId();
+                if (SubscriptionManager.isUsableSubIdValue(subId)) {
+                    Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                            PREFERRED_NETWORK_MODE + subId, mPreferredNetworkTypeResult);
+                }
+                log("Calling setPreferredNetworkType(" + mPreferredNetworkTypeResult + ")");
+                Message msg = mHandler.obtainMessage(EVENT_SET_PREFERRED_TYPE_DONE);
+                mPhone.setPreferredNetworkType(mPreferredNetworkTypeResult, msg);
+            }
+        }
+
+        public void onNothingSelected(AdapterView parent) {
+        }
+    };
+
+    AdapterView.OnItemSelectedListener mSelectPhoneIndexHandler =
+            new AdapterView.OnItemSelectedListener() {
+
+        public void onItemSelected(AdapterView parent, View v, int pos, long id) {
+            if (pos >= 0 && pos <= sPhoneIndexLabels.length - 1) {
+                // the array position is equal to the phone index
+                int phoneIndex = pos;
+                Phone[] phones = PhoneFactory.getPhones();
+                if (phones == null || phones.length <= phoneIndex) {
+                    return;
+                }
+                // getSubId says it takes a slotIndex, but it actually takes a phone index
+                int subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+                int[] subIds = SubscriptionManager.getSubId(phoneIndex);
+                if (subIds != null && subIds.length > 0) {
+                    subId = subIds[0];
+                }
+                mSelectedPhoneIndex = phoneIndex;
+
+                updatePhoneIndex(phoneIndex, subId);
+            }
+        }
+
+        public void onNothingSelected(AdapterView parent) {
+        }
+    };
+
+    AdapterView.OnItemSelectedListener mCellInfoRefreshRateHandler  =
+            new AdapterView.OnItemSelectedListener() {
+
+        public void onItemSelected(AdapterView parent, View v, int pos, long id) {
+            mCellInfoRefreshRateIndex = pos;
+            mTelephonyManager.setCellInfoListRate(CELL_INFO_REFRESH_RATES[pos]);
+            updateAllCellInfo();
+        }
+
+        public void onNothingSelected(AdapterView parent) {
+        }
+    };
+
+    boolean isCbrsSupported() {
+        return getResources().getBoolean(
+              com.android.internal.R.bool.config_cbrs_supported);
+    }
+
+    void updateCbrsDataState(boolean state) {
+        Log.d(TAG, "setCbrsDataSwitchState() state:" + ((state) ? "on" : "off"));
+        if (mTelephonyManager != null) {
+            mQueuedWork.execute(new Runnable() {
+                public void run() {
+                    mTelephonyManager.setOpportunisticNetworkState(state);
+                    mHandler.post(() -> mCbrsDataSwitch.setChecked(getCbrsDataState()));
+                }
+            });
+        }
+    }
+
+    boolean getCbrsDataState() {
+        boolean state = false;
+        if (mTelephonyManager != null) {
+            state = mTelephonyManager.isOpportunisticNetworkEnabled();
+        }
+        Log.d(TAG, "getCbrsDataState() state:" + ((state) ? "on" : "off"));
+        return state;
+    }
+
+    OnCheckedChangeListener mCbrsDataSwitchChangeListener = new OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+            updateCbrsDataState(isChecked);
+        }
+    };
+
+    private void showDsdsChangeDialog() {
+        final AlertDialog confirmDialog = new Builder(RadioInfo.this)
+                .setTitle(R.string.dsds_dialog_title)
+                .setMessage(R.string.dsds_dialog_message)
+                .setPositiveButton(R.string.dsds_dialog_confirm, mOnDsdsDialogConfirmedListener)
+                .setNegativeButton(R.string.dsds_dialog_cancel, mOnDsdsDialogConfirmedListener)
+                .create();
+        confirmDialog.show();
+    }
+
+    private static boolean isDsdsSupported() {
+        return (TelephonyManager.getDefault().isMultiSimSupported()
+            == TelephonyManager.MULTISIM_ALLOWED);
+    }
+
+    private static boolean isDsdsEnabled() {
+        return TelephonyManager.getDefault().getPhoneCount() > 1;
+    }
+
+    private void performDsdsSwitch() {
+        mTelephonyManager.switchMultiSimConfig(mDsdsSwitch.isChecked() ? 2 : 1);
+    }
+
+    /**
+     * @return {@code True} if the device is only supported dsds mode.
+     */
+    private boolean dsdsModeOnly() {
+        String dsdsMode = SystemProperties.get(DSDS_MODE_PROPERTY);
+        return !TextUtils.isEmpty(dsdsMode) && Integer.parseInt(dsdsMode) == ALWAYS_ON_DSDS_MODE;
+    }
+
+    DialogInterface.OnClickListener mOnDsdsDialogConfirmedListener =
+            new DialogInterface.OnClickListener() {
+        @Override
+        public void onClick(DialogInterface dialog, int which) {
+            if (which == DialogInterface.BUTTON_POSITIVE) {
+                mDsdsSwitch.toggle();
+                performDsdsSwitch();
+            }
+        }
+    };
+}
diff --git a/src/com/android/phone/settings/SuppServicesUiUtil.java b/src/com/android/phone/settings/SuppServicesUiUtil.java
index d508d9c..4e9841f 100644
--- a/src/com/android/phone/settings/SuppServicesUiUtil.java
+++ b/src/com/android/phone/settings/SuppServicesUiUtil.java
@@ -208,7 +208,7 @@
                                     Log.d(LOG_TAG, "handleCallerIdUssdResponse: response ="
                                             + response.toString());
                                     PhoneUtils.createUssdDialog(app, context, response.toString(),
-                                            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
+                                            phone, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
                                 }
 
                                 @Override
@@ -219,7 +219,7 @@
                                             + failureCode);
                                     PhoneUtils.createUssdDialog(app, context,
                                             context.getText(R.string.response_error),
-                                            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
+                                            phone, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
                                 }
                             };
 
diff --git a/src/com/android/phone/settings/VoicemailSettingsActivity.java b/src/com/android/phone/settings/VoicemailSettingsActivity.java
index e18dc93..66b1af9 100644
--- a/src/com/android/phone/settings/VoicemailSettingsActivity.java
+++ b/src/com/android/phone/settings/VoicemailSettingsActivity.java
@@ -43,6 +43,7 @@
 import android.widget.Toast;
 
 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.util.NotificationChannelController;
@@ -733,6 +734,7 @@
             for (int i = 0; i < mForwardingReadResults.length; i++) {
                 mPhone.getCallForwardingOption(
                         VoicemailProviderSettings.FORWARDING_SETTINGS_REASONS[i],
+                        CommandsInterface.SERVICE_CLASS_VOICE,
                         mGetOptionComplete.obtainMessage(EVENT_FORWARDING_GET_COMPLETED, i, 0));
             }
             showDialogIfForeground(VoicemailDialogUtil.VM_FWD_READING_DIALOG);
diff --git a/src/com/android/phone/settings/fdn/EditFdnContactScreen.java b/src/com/android/phone/settings/fdn/EditFdnContactScreen.java
index c358e27..140cc74 100644
--- a/src/com/android/phone/settings/fdn/EditFdnContactScreen.java
+++ b/src/com/android/phone/settings/fdn/EditFdnContactScreen.java
@@ -29,6 +29,7 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.PersistableBundle;
 import android.provider.ContactsContract.CommonDataKinds;
 import android.telephony.PhoneNumberUtils;
 import android.text.Editable;
@@ -52,6 +53,7 @@
 import com.android.phone.PhoneGlobals;
 import com.android.phone.R;
 import com.android.phone.SubscriptionInfoHelper;
+import android.telephony.CarrierConfigManager;
 
 /**
  * Activity to let the user add or edit an FDN contact.
@@ -100,6 +102,7 @@
     }
     /** flag to track saving state */
     private boolean mDataBusy;
+    private int mFdnNumberLimitLength = 20;
 
     @Override
     protected void onCreate(Bundle icicle) {
@@ -111,6 +114,17 @@
         setContentView(R.layout.edit_fdn_contact_screen);
         setupView();
         setTitle(mAddContact ? R.string.add_fdn_contact : R.string.edit_fdn_contact);
+        PersistableBundle b = null;
+        if (mSubscriptionInfoHelper.hasSubId()) {
+            b = PhoneGlobals.getInstance().getCarrierConfigForSubId(
+                    mSubscriptionInfoHelper.getSubId());
+        } else {
+            b = PhoneGlobals.getInstance().getCarrierConfig();
+        }
+        if (b != null) {
+            mFdnNumberLimitLength = b.getInt(
+                    CarrierConfigManager.KEY_FDN_NUMBER_LENGTH_LIMIT_INT);
+        }
 
         displayProgress(false);
     }
@@ -294,7 +308,7 @@
       * TODO: Fix this logic.
       */
      private boolean isValidNumber(String number) {
-         return (number.length() <= 20) && (number.length() > 0);
+         return (number.length() <= mFdnNumberLimitLength) && (number.length() > 0);
      }
 
 
@@ -397,7 +411,8 @@
         } else {
             if (DBG) log("handleResult: failed!");
             if (invalidNumber) {
-                showStatus(getResources().getText(R.string.fdn_invalid_number));
+                showStatus(getResources().getString(R.string.fdn_invalid_number,
+                        mFdnNumberLimitLength));
             } else {
                if (PhoneFactory.getDefaultPhone().getIccCard().getIccPin2Blocked()) {
                     showStatus(getResources().getText(R.string.fdn_enable_puk2_requested));
@@ -428,7 +443,7 @@
             }
 
             if (v == mNameField) {
-                mNumberField.requestFocus();
+                mButton.requestFocus();
             } else if (v == mNumberField) {
                 mButton.requestFocus();
             } else if (v == mButton) {
diff --git a/src/com/android/phone/settings/fdn/EditPinPreference.java b/src/com/android/phone/settings/fdn/EditPinPreference.java
index 9596f39..a9d1948 100644
--- a/src/com/android/phone/settings/fdn/EditPinPreference.java
+++ b/src/com/android/phone/settings/fdn/EditPinPreference.java
@@ -23,8 +23,6 @@
 import android.util.AttributeSet;
 import android.view.View;
 
-import com.android.phone.R;
-
 /**
  * Class similar to the com.android.settings.EditPinPreference
  * class, with a couple of modifications, including a different layout
@@ -62,27 +60,12 @@
         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);
 
+        getEditText().setInputType(InputType.TYPE_CLASS_NUMBER
+                | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
         // If the layout does not contain an edittext, hide the buttons.
         shouldHideButtons = (view.findViewById(android.R.id.edit) == null);
     }
diff --git a/src/com/android/phone/vvm/RemoteVvmTaskManager.java b/src/com/android/phone/vvm/RemoteVvmTaskManager.java
index 14030a1..6b60303 100644
--- a/src/com/android/phone/vvm/RemoteVvmTaskManager.java
+++ b/src/com/android/phone/vvm/RemoteVvmTaskManager.java
@@ -22,6 +22,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
+import android.content.pm.ComponentInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.os.Bundle;
@@ -38,6 +39,7 @@
 import android.telephony.VisualVoicemailSms;
 import android.text.TextUtils;
 
+import com.android.internal.telephony.util.TelephonyUtils;
 import com.android.phone.Assert;
 import com.android.phone.R;
 
@@ -167,7 +169,8 @@
             }
             if (info.serviceInfo == null) {
                 VvmLog.w(TAG,
-                        "Component " + info.getComponentInfo() + " is not a service, ignoring");
+                        "Component " + TelephonyUtils.getComponentInfo(info)
+                            + " is not a service, ignoring");
                 continue;
             }
             if (!android.Manifest.permission.BIND_VISUAL_VOICEMAIL_SERVICE
@@ -180,7 +183,8 @@
                 VvmLog.w(TAG, "target package " + targetPackage
                         + " is no longer the active VisualVoicemailService, ignoring");
             }
-            return info.getComponentInfo().getComponentName();
+            ComponentInfo componentInfo = TelephonyUtils.getComponentInfo(info);
+            return new ComponentName(componentInfo.packageName, componentInfo.name);
 
         }
         return null;
@@ -199,7 +203,8 @@
         if (info.isEmpty()) {
             return null;
         }
-        return info.get(0).getComponentInfo().getComponentName();
+        ComponentInfo componentInfo = TelephonyUtils.getComponentInfo(info.get(0));
+        return new ComponentName(componentInfo.packageName, componentInfo.name);
     }
 
     @Override
diff --git a/src/com/android/phone/vvm/VvmDumpHandler.java b/src/com/android/phone/vvm/VvmDumpHandler.java
index 866927e..82c5bb5 100644
--- a/src/com/android/phone/vvm/VvmDumpHandler.java
+++ b/src/com/android/phone/vvm/VvmDumpHandler.java
@@ -19,7 +19,7 @@
         indentedWriter.println("******* OmtpVvm *******");
         indentedWriter.println("======= Configs =======");
         indentedWriter.increaseIndent();
-        for (PhoneAccountHandle handle : TelecomManager.from(context)
+        for (PhoneAccountHandle handle : context.getSystemService(TelecomManager.class)
                 .getCallCapablePhoneAccounts()) {
             int subId = PhoneAccountHandleConverter.toSubId(handle);
             indentedWriter.println(
diff --git a/src/com/android/services/telephony/CdmaConference.java b/src/com/android/services/telephony/CdmaConference.java
old mode 100755
new mode 100644
index 69ff2a4..7458195
--- a/src/com/android/services/telephony/CdmaConference.java
+++ b/src/com/android/services/telephony/CdmaConference.java
@@ -17,8 +17,8 @@
 package com.android.services.telephony;
 
 import android.content.Context;
+import android.net.Uri;
 import android.os.PersistableBundle;
-import android.telecom.Conference;
 import android.telecom.Connection;
 import android.telecom.PhoneAccountHandle;
 import android.telephony.CarrierConfigManager;
@@ -32,7 +32,7 @@
 /**
  * CDMA-based conference call.
  */
-public class CdmaConference extends Conference implements Holdable {
+public class CdmaConference extends TelephonyConferenceBase implements Holdable {
     private int mCapabilities;
     private int mProperties;
     private boolean mIsHoldable;
@@ -74,6 +74,22 @@
     }
 
     @Override
+    public void onAddConferenceParticipants(List<Uri> participants) {
+        Log.e(this, new Exception(), "Adding Conference Participants not supported " +
+                " for CDMA conference call.");
+    }
+
+    @Override
+    public void onAnswer(int videoState) {
+        Log.e(this, new Exception(), "Answer not supported for CDMA conference call.");
+    }
+
+    @Override
+    public void onReject() {
+        Log.e(this, new Exception(), "Reject not supported for CDMA conference call.");
+    }
+
+    @Override
     public void onHold() {
         Log.e(this, new Exception(), "Hold not supported for CDMA conference call.");
     }
diff --git a/src/com/android/services/telephony/CdmaConferenceController.java b/src/com/android/services/telephony/CdmaConferenceController.java
index 5d987f7..9afcd0a 100644
--- a/src/com/android/services/telephony/CdmaConferenceController.java
+++ b/src/com/android/services/telephony/CdmaConferenceController.java
@@ -48,7 +48,8 @@
  * the conference from being created for 3 seconds. This is a more pleasant experience for the user.
  */
 final class CdmaConferenceController {
-    private final Connection.Listener mConnectionListener = new Connection.Listener() {
+    private final TelephonyConnection.TelephonyConnectionListener mTelephonyConnectionListener =
+            new TelephonyConnection.TelephonyConnectionListener() {
                 @Override
                 public void onStateChanged(Connection c, int state) {
                     recalculateConference();
@@ -139,7 +140,7 @@
 
     private void addInternal(CdmaConnection connection) {
         mCdmaConnections.add(connection);
-        connection.addConnectionListener(mConnectionListener);
+        connection.addTelephonyConnectionListener(mTelephonyConnectionListener);
         recalculateConference();
     }
 
@@ -151,7 +152,7 @@
             return;
         }
 
-        connection.removeConnectionListener(mConnectionListener);
+        connection.removeTelephonyConnectionListener(mTelephonyConnectionListener);
         mCdmaConnections.remove(connection);
         recalculateConference();
     }
@@ -197,14 +198,14 @@
             for (CdmaConnection connection : conferenceConnections) {
                 if (!existingChildConnections.contains(connection)) {
                     Log.i(this, "Adding connection to conference call: %s", connection);
-                    mConference.addConnection(connection);
+                    mConference.addTelephonyConnection(connection);
                 }
                 existingChildConnections.remove(connection);
             }
 
             // 3) Remove any lingering old/disconnected/destroyed connections
             for (Connection oldConnection : existingChildConnections) {
-                mConference.removeConnection(oldConnection);
+                mConference.removeTelephonyConnection(oldConnection);
                 Log.i(this, "Removing connection from conference call: %s", oldConnection);
             }
 
@@ -212,13 +213,13 @@
             if (isNewlyCreated) {
                 Log.d(this, "Adding the conference call");
                 mConference.updateCallRadioTechAfterCreation();
-                mConnectionService.addConference(mConference);
+                mConnectionService.addTelephonyConference(mConference);
             }
         } else if (conferenceConnections.isEmpty()) {
             // There are no more connection so if we still have a conference, lets remove it.
             if (mConference != null) {
                 Log.i(this, "Destroying the CDMA conference connection.");
-                mConference.destroy();
+                mConference.destroyTelephonyConference();
                 mConference = null;
             }
         }
diff --git a/src/com/android/services/telephony/CdmaConnection.java b/src/com/android/services/telephony/CdmaConnection.java
index ca842b1..bd015e3 100644
--- a/src/com/android/services/telephony/CdmaConnection.java
+++ b/src/com/android/services/telephony/CdmaConnection.java
@@ -228,8 +228,8 @@
             } catch (CallStateException e) {
                 Log.e(this, e, "Failed to hangup call waiting call");
             }
-            setDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(telephonyDisconnectCause,
-                    null, getPhone().getPhoneId()));
+            setTelephonyConnectionDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
+                    telephonyDisconnectCause, null, getPhone().getPhoneId()));
         }
     }
 
@@ -325,7 +325,7 @@
     }
 
     @Override
-    protected void close() {
+    public void close() {
         mIsConnectionTimeReset = false;
         if (getPhone() != null) {
             getPhone().unregisterForLineControlInfo(mHandler);
diff --git a/src/com/android/services/telephony/ConferenceParticipantConnection.java b/src/com/android/services/telephony/ConferenceParticipantConnection.java
index 61dc039..b7ecd48 100644
--- a/src/com/android/services/telephony/ConferenceParticipantConnection.java
+++ b/src/com/android/services/telephony/ConferenceParticipantConnection.java
@@ -17,23 +17,23 @@
 package com.android.services.telephony;
 
 import android.net.Uri;
-import android.telecom.ConferenceParticipant;
 import android.telecom.Connection;
 import android.telecom.DisconnectCause;
-import android.telecom.PhoneAccount;
-import android.telephony.PhoneNumberUtils;
 import android.telephony.SubscriptionInfo;
 import android.text.TextUtils;
 
-import com.android.internal.annotations.VisibleForTesting;
+import com.android.ims.internal.ConferenceParticipant;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
+import com.android.telephony.Rlog;
 
 /**
  * Represents a participant in a conference call.
  */
 public class ConferenceParticipantConnection extends Connection {
 
+    private static final String LOG_TAG = "ConferenceParticipantConnection";
+
     /**
      * The user entity URI For the conference participant.
      */
@@ -88,7 +88,7 @@
      * @param newState The new state.
      */
     public void updateState(int newState) {
-        Log.v(this, "updateState endPoint: %s state: %s", Log.pii(mEndpoint),
+        Log.v(this, "updateState endPoint: %s state: %s", Rlog.pii(LOG_TAG, mEndpoint),
                 Connection.stateToString(newState));
         if (newState == getState()) {
             return;
@@ -183,7 +183,7 @@
         SubscriptionInfo subInfo = TelecomAccountRegistry.getInstance(null).
                 getSubscriptionManager().getActiveSubscriptionInfo(subId);
 
-        if (subInfo == null) {
+        if (subInfo == null || TextUtils.isEmpty(subInfo.getCountryIso())) {
             return null;
         }
         // The SubscriptionInfo reports ISO country codes in lower case.  Convert to upper case,
@@ -203,19 +203,19 @@
         sb.append("[ConferenceParticipantConnection objId:");
         sb.append(System.identityHashCode(this));
         sb.append(" endPoint:");
-        sb.append(Log.pii(mEndpoint));
+        sb.append(Rlog.pii(LOG_TAG, mEndpoint));
         sb.append(" address:");
-        sb.append(Log.pii(getAddress()));
+        sb.append(Rlog.pii(LOG_TAG, getAddress()));
         sb.append(" addressPresentation:");
         sb.append(getAddressPresentation());
         sb.append(" parentConnection:");
-        sb.append(Log.pii(mParentConnection.getAddress()));
+        sb.append(Rlog.pii(LOG_TAG, mParentConnection.getAddress()));
         sb.append(" state:");
         sb.append(Connection.stateToString(getState()));
         sb.append(" connectTime:");
         sb.append(getConnectTimeMillis());
         sb.append(" connectElapsedTime:");
-        sb.append(getConnectElapsedTimeMillis());
+        sb.append(getConnectionStartElapsedRealtimeMillis());
         sb.append("]");
 
         return sb.toString();
diff --git a/src/com/android/services/telephony/DisconnectCauseUtil.java b/src/com/android/services/telephony/DisconnectCauseUtil.java
index 20c16fe..855ba08 100644
--- a/src/com/android/services/telephony/DisconnectCauseUtil.java
+++ b/src/com/android/services/telephony/DisconnectCauseUtil.java
@@ -18,10 +18,14 @@
 
 import android.content.Context;
 import android.media.ToneGenerator;
+import android.os.PersistableBundle;
 import android.telecom.DisconnectCause;
+import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
 
 import com.android.internal.telephony.CallFailCause;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
 import com.android.phone.ImsUtil;
 import com.android.phone.PhoneGlobals;
 import com.android.phone.common.R;
@@ -102,7 +106,7 @@
                         telephonyPerciseDisconnectCause),
                 toTelecomDisconnectCauseDescription(context, telephonyDisconnectCause, phoneId),
                 toTelecomDisconnectReason(context,telephonyDisconnectCause, reason, phoneId),
-                toTelecomDisconnectCauseTone(telephonyDisconnectCause));
+                toTelecomDisconnectCauseTone(telephonyDisconnectCause, phoneId));
     }
 
     /**
@@ -113,6 +117,8 @@
     private static int toTelecomDisconnectCauseCode(int telephonyDisconnectCause) {
         switch (telephonyDisconnectCause) {
             case android.telephony.DisconnectCause.LOCAL:
+            //  The call was still disconnected locally, so this is not an error condition.
+            case android.telephony.DisconnectCause.OUTGOING_EMERGENCY_CALL_PLACED:
                 return DisconnectCause.LOCAL;
 
             case android.telephony.DisconnectCause.NORMAL:
@@ -195,6 +201,7 @@
             case android.telephony.DisconnectCause.WIFI_LOST:
             case android.telephony.DisconnectCause.IMS_ACCESS_BLOCKED:
             case android.telephony.DisconnectCause.IMS_SIP_ALTERNATE_EMERGENCY_CALL:
+            case android.telephony.DisconnectCause.MEDIA_TIMEOUT:
                 return DisconnectCause.ERROR;
 
             case android.telephony.DisconnectCause.DIALED_MMI:
@@ -792,6 +799,8 @@
                 break;
             case android.telephony.DisconnectCause.IMS_ACCESS_BLOCKED:
                 return DisconnectCause.REASON_IMS_ACCESS_BLOCKED;
+            case android.telephony.DisconnectCause.OUTGOING_EMERGENCY_CALL_PLACED:
+                return DisconnectCause.REASON_EMERGENCY_CALL_PLACED;
         }
 
         // If no specific code-mapping found, then fall back to using the reason.
@@ -806,11 +815,22 @@
     /**
      * Returns the tone to play for the disconnect cause, or UNKNOWN if none should be played.
      */
-    private static int toTelecomDisconnectCauseTone(int telephonyDisconnectCause) {
-        switch (telephonyDisconnectCause) {
-            case android.telephony.DisconnectCause.BUSY:
+    private static int toTelecomDisconnectCauseTone(int telephonyDisconnectCause, int phoneId) {
+        Phone phone = PhoneFactory.getPhone(phoneId);
+        PersistableBundle config;
+        if (phone != null) {
+            config = PhoneGlobals.getInstance().getCarrierConfigForSubId(phone.getSubId());
+        } else {
+            config = PhoneGlobals.getInstance().getCarrierConfig();
+        }
+        int[] busyToneArray = config.getIntArray(
+                CarrierConfigManager.KEY_DISCONNECT_CAUSE_PLAY_BUSYTONE_INT_ARRAY);
+        for (int busyTone : busyToneArray) {
+            if (busyTone == telephonyDisconnectCause) {
                 return ToneGenerator.TONE_SUP_BUSY;
-
+            }
+        }
+        switch (telephonyDisconnectCause) {
             case android.telephony.DisconnectCause.CONGESTION:
                 return ToneGenerator.TONE_SUP_CONGESTION;
 
@@ -827,17 +847,17 @@
             case android.telephony.DisconnectCause.UNOBTAINABLE_NUMBER:
                 return ToneGenerator.TONE_SUP_ERROR;
 
+            case android.telephony.DisconnectCause.IMS_MERGED_SUCCESSFULLY:
+                // Do not play any tones if disconnected because of a successful merge.
+                return -1;
+
             case android.telephony.DisconnectCause.ERROR_UNSPECIFIED:
             case android.telephony.DisconnectCause.LOCAL:
             case android.telephony.DisconnectCause.NORMAL:
             case android.telephony.DisconnectCause.NORMAL_UNSPECIFIED:
             case android.telephony.DisconnectCause.VIDEO_CALL_NOT_ALLOWED_WHILE_TTY_ENABLED:
-                return ToneGenerator.TONE_PROP_PROMPT;
-
-            case android.telephony.DisconnectCause.IMS_MERGED_SUCCESSFULLY:
-                // Do not play any tones if disconnected because of a successful merge.
             default:
-                return ToneGenerator.TONE_UNKNOWN;
+                return ToneGenerator.TONE_PROP_PROMPT;
         }
     }
 }
diff --git a/src/com/android/services/telephony/EmergencyTonePlayer.java b/src/com/android/services/telephony/EmergencyTonePlayer.java
index 8e26349..431f8d7 100644
--- a/src/com/android/services/telephony/EmergencyTonePlayer.java
+++ b/src/com/android/services/telephony/EmergencyTonePlayer.java
@@ -23,7 +23,6 @@
 import android.media.AudioAttributes;
 import android.media.AudioManager;
 import android.media.ToneGenerator;
-import android.os.SystemVibrator;
 import android.os.Vibrator;
 import android.provider.Settings;
 
@@ -49,11 +48,9 @@
                 .setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION)
                 .build();
 
-    // We don't rely on getSystemService(Context.VIBRATOR_SERVICE) to make sure that this vibrator
-    // object will be isolated from others.
-    private final Vibrator mVibrator = new SystemVibrator();
     private final Context mContext;
     private final AudioManager mAudioManager;
+    private final Vibrator mVibrator;
 
     private ToneGenerator mToneGenerator;
     private int mSavedInCallVolume;
@@ -62,6 +59,7 @@
     EmergencyTonePlayer(Context context) {
         mContext = context;
         mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+        mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
     }
 
     public void start() {
diff --git a/src/com/android/services/telephony/HoldTracker.java b/src/com/android/services/telephony/HoldTracker.java
index 805802f..5032b41 100644
--- a/src/com/android/services/telephony/HoldTracker.java
+++ b/src/com/android/services/telephony/HoldTracker.java
@@ -16,7 +16,6 @@
 
 package com.android.services.telephony;
 
-import android.telecom.Log;
 import android.telecom.PhoneAccountHandle;
 
 import java.util.ArrayList;
diff --git a/src/com/android/services/telephony/ImsConference.java b/src/com/android/services/telephony/ImsConference.java
index bf0374f..c11a1ca 100644
--- a/src/com/android/services/telephony/ImsConference.java
+++ b/src/com/android/services/telephony/ImsConference.java
@@ -21,12 +21,9 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.PersistableBundle;
-import android.telecom.Conference;
-import android.telecom.ConferenceParticipant;
 import android.telecom.Connection;
 import android.telecom.Connection.VideoProvider;
 import android.telecom.DisconnectCause;
-import android.telecom.Log;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.StatusHints;
 import android.telecom.TelecomManager;
@@ -35,6 +32,7 @@
 import android.telephony.PhoneNumberUtils;
 import android.util.Pair;
 
+import com.android.ims.internal.ConferenceParticipant;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.Call;
 import com.android.internal.telephony.CallStateException;
@@ -43,6 +41,7 @@
 import com.android.phone.PhoneGlobals;
 import com.android.phone.PhoneUtils;
 import com.android.phone.R;
+import com.android.telephony.Rlog;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -68,7 +67,9 @@
  * connection and is responsible for managing the conference participant connections which represent
  * the participants.
  */
-public class ImsConference extends Conference implements Holdable {
+public class ImsConference extends TelephonyConferenceBase implements Holdable {
+
+    private static final String LOG_TAG = "ImsConference";
 
     /**
      * Abstracts out fetching a feature flag.  Makes testing easier.
@@ -78,149 +79,139 @@
     }
 
     /**
-     * Listener used to respond to changes to conference participants.  At the conference level we
-     * are most concerned with handling destruction of a conference participant.
-     */
-    private final Connection.Listener mParticipantListener = new Connection.Listener() {
-        /**
-         * Participant has been destroyed.  Remove it from the conference.
-         *
-         * @param connection The participant which was destroyed.
-         */
-        @Override
-        public void onDestroyed(Connection connection) {
-            ConferenceParticipantConnection participant =
-                    (ConferenceParticipantConnection) connection;
-            removeConferenceParticipant(participant);
-            updateManageConference();
-        }
-
-    };
-
-    /**
      * Listener used to respond to changes to the underlying radio connection for the conference
      * host connection.  Used to respond to SRVCC changes.
      */
     private final TelephonyConnection.TelephonyConnectionListener mTelephonyConnectionListener =
             new TelephonyConnection.TelephonyConnectionListener() {
 
-        @Override
-        public void onOriginalConnectionConfigured(TelephonyConnection c) {
-            if (c == mConferenceHost) {
-               handleOriginalConnectionChange();
-            }
-        }
-    };
+                /**
+                 * Updates the state of the conference based on the new state of the host.
+                 *
+                 * @param c The host connection.
+                 * @param state The new state
+                 */
+                @Override
+                public void onStateChanged(android.telecom.Connection c, int state) {
+                    setState(state);
+                }
 
-    /**
-     * Listener used to respond to changes to the connection to the IMS conference server.
-     */
-    private final android.telecom.Connection.Listener mConferenceHostListener =
-            new android.telecom.Connection.Listener() {
+                /**
+                 * Disconnects the conference when its host connection disconnects.
+                 *
+                 * @param c The host connection.
+                 * @param disconnectCause The host connection disconnect cause.
+                 */
+                @Override
+                public void onDisconnected(android.telecom.Connection c,
+                        DisconnectCause disconnectCause) {
+                    setDisconnected(disconnectCause);
+                }
 
-        /**
-         * Updates the state of the conference based on the new state of the host.
-         *
-         * @param c The host connection.
-         * @param state The new state
-         */
-        @Override
-        public void onStateChanged(android.telecom.Connection c, int state) {
-            setState(state);
-        }
+                @Override
+                public void onVideoStateChanged(android.telecom.Connection c, int videoState) {
+                    Log.d(this, "onVideoStateChanged video state %d", videoState);
+                    setVideoState(c, videoState);
+                }
 
-        /**
-         * Disconnects the conference when its host connection disconnects.
-         *
-         * @param c The host connection.
-         * @param disconnectCause The host connection disconnect cause.
-         */
-        @Override
-        public void onDisconnected(android.telecom.Connection c, DisconnectCause disconnectCause) {
-            setDisconnected(disconnectCause);
-        }
+                @Override
+                public void onVideoProviderChanged(android.telecom.Connection c,
+                        Connection.VideoProvider videoProvider) {
+                    Log.d(this, "onVideoProviderChanged: Connection: %s, VideoProvider: %s", c,
+                            videoProvider);
+                    setVideoProvider(c, videoProvider);
+                }
 
-        /**
-         * Handles changes to conference participant data as reported by the conference host
-         * connection.
-         *
-         * @param c The connection.
-         * @param participants The participant information.
-         */
-        @Override
-        public void onConferenceParticipantsChanged(android.telecom.Connection c,
-                List<ConferenceParticipant> participants) {
+                @Override
+                public void onConnectionCapabilitiesChanged(Connection c,
+                        int connectionCapabilities) {
+                    Log.d(this, "onConnectionCapabilitiesChanged: Connection: %s,"
+                            + " connectionCapabilities: %s", c, connectionCapabilities);
+                    int capabilites = ImsConference.this.getConnectionCapabilities();
+                    boolean isVideoConferencingSupported = mConferenceHost == null ? false :
+                            mConferenceHost.isCarrierVideoConferencingSupported();
+                    setConnectionCapabilities(
+                            applyHostCapabilities(capabilites, connectionCapabilities,
+                                    isVideoConferencingSupported));
+                }
 
-            if (c == null || participants == null) {
-                return;
-            }
-            Log.v(this, "onConferenceParticipantsChanged: %d participants", participants.size());
-            TelephonyConnection telephonyConnection = (TelephonyConnection) c;
-            handleConferenceParticipantsUpdate(telephonyConnection, participants);
-        }
+                @Override
+                public void onConnectionPropertiesChanged(Connection c, int connectionProperties) {
+                    Log.d(this, "onConnectionPropertiesChanged: Connection: %s,"
+                            + " connectionProperties: %s", c, connectionProperties);
+                    int properties = ImsConference.this.getConnectionProperties();
+                    setConnectionProperties(applyHostProperties(properties, connectionProperties));
+                }
 
-        @Override
-        public void onVideoStateChanged(android.telecom.Connection c, int videoState) {
-            Log.d(this, "onVideoStateChanged video state %d", videoState);
-            setVideoState(c, videoState);
-        }
+                @Override
+                public void onStatusHintsChanged(Connection c, StatusHints statusHints) {
+                    Log.v(this, "onStatusHintsChanged");
+                    updateStatusHints();
+                }
 
-        @Override
-        public void onVideoProviderChanged(android.telecom.Connection c,
-                Connection.VideoProvider videoProvider) {
-            Log.d(this, "onVideoProviderChanged: Connection: %s, VideoProvider: %s", c,
-                    videoProvider);
-            setVideoProvider(c, videoProvider);
-        }
+                @Override
+                public void onExtrasChanged(Connection c, Bundle extras) {
+                    Log.v(this, "onExtrasChanged: c=" + c + " Extras=" + extras);
+                    putExtras(extras);
+                }
 
-        @Override
-        public void onConnectionCapabilitiesChanged(Connection c, int connectionCapabilities) {
-            Log.d(this, "onConnectionCapabilitiesChanged: Connection: %s," +
-                    " connectionCapabilities: %s", c, connectionCapabilities);
-            int capabilites = ImsConference.this.getConnectionCapabilities();
-            boolean isVideoConferencingSupported = mConferenceHost == null ? false :
-                    mConferenceHost.isCarrierVideoConferencingSupported();
-            setConnectionCapabilities(applyHostCapabilities(capabilites, connectionCapabilities,
-                    isVideoConferencingSupported));
-        }
+                @Override
+                public void onExtrasRemoved(Connection c, List<String> keys) {
+                    Log.v(this, "onExtrasRemoved: c=" + c + " key=" + keys);
+                    removeExtras(keys);
+                }
 
-        @Override
-        public void onConnectionPropertiesChanged(Connection c, int connectionProperties) {
-            Log.d(this, "onConnectionPropertiesChanged: Connection: %s," +
-                    " connectionProperties: %s", c, connectionProperties);
-            int properties = ImsConference.this.getConnectionProperties();
-            setConnectionProperties(applyHostProperties(properties, connectionProperties));
-        }
+                @Override
+                public void onConnectionEvent(Connection c, String event, Bundle extras) {
+                    if (Connection.EVENT_MERGE_START.equals(event)) {
+                        // Do not pass a merge start event on the underlying host connection; only
+                        // indicate a merge has started on the connections which are merged into a
+                        // conference.
+                        return;
+                    }
 
-        @Override
-        public void onStatusHintsChanged(Connection c, StatusHints statusHints) {
-            Log.v(this, "onStatusHintsChanged");
-            updateStatusHints();
-        }
+                    sendConferenceEvent(event, extras);
+                }
 
-        @Override
-        public void onExtrasChanged(Connection c, Bundle extras) {
-            Log.v(this, "onExtrasChanged: c=" + c + " Extras=" + extras);
-            putExtras(extras);
-        }
+                @Override
+                public void onOriginalConnectionConfigured(TelephonyConnection c) {
+                    if (c == mConferenceHost) {
+                        handleOriginalConnectionChange();
+                    }
+                }
 
-        @Override
-        public void onExtrasRemoved(Connection c, List<String> keys) {
-            Log.v(this, "onExtrasRemoved: c=" + c + " key=" + keys);
-            removeExtras(keys);
-        }
+                /**
+                 * Handles changes to conference participant data as reported by the conference host
+                 * connection.
+                 *
+                 * @param c The connection.
+                 * @param participants The participant information.
+                 */
+                @Override
+                public void onConferenceParticipantsChanged(android.telecom.Connection c,
+                        List<ConferenceParticipant> participants) {
 
-        @Override
-        public void onConnectionEvent(Connection c, String event, Bundle extras) {
-            if (Connection.EVENT_MERGE_START.equals(event)) {
-                // Do not pass a merge start event on the underlying host connection; we only
-                // indicate a merge has started on the connections which are merged into a
-                // conference.
-                return;
-            }
-            sendConnectionEvent(event, extras);
-        }
-    };
+                    if (c == null || participants == null) {
+                        return;
+                    }
+                    Log.v(this, "onConferenceParticipantsChanged: %d participants",
+                            participants.size());
+                    TelephonyConnection telephonyConnection = (TelephonyConnection) c;
+                    handleConferenceParticipantsUpdate(telephonyConnection, participants);
+                }
+
+                /**
+                 * Handles request to play a ringback tone.
+                 *
+                 * @param c The connection.
+                 * @param ringback Whether the ringback tone is to be played.
+                 */
+                @Override
+                public void onRingbackRequested(android.telecom.Connection c, boolean ringback) {
+                    Log.d(this, "onRingbackRequested ringback %s", ringback ? "Y" : "N");
+                    setRingbackRequested(ringback);
+                }
+            };
 
     /**
      * The telephony connection service; used to add new participant connections to Telecom.
@@ -245,6 +236,11 @@
     private TelecomAccountRegistry mTelecomAccountRegistry;
 
     /**
+     * The participant with which Adhoc Conference call is getting formed.
+     */
+    private List<Uri> mParticipants;
+
+    /**
      * The known conference participant connections.  The HashMap is keyed by a Pair containing
      * the handle and endpoint Uris.
      * Access to the hashmap is protected by the {@link #mUpdateSyncRoot}.
@@ -317,10 +313,10 @@
         long connectTime = conferenceHost.getOriginalConnection().getConnectTime();
         long connectElapsedTime = conferenceHost.getOriginalConnection().getConnectTimeReal();
         setConnectionTime(connectTime);
-        setConnectionStartElapsedRealTime(connectElapsedTime);
+        setConnectionStartElapsedRealtimeMillis(connectElapsedTime);
         // Set the connectTime in the connection as well.
         conferenceHost.setConnectTimeMillis(connectTime);
-        conferenceHost.setConnectionStartElapsedRealTime(connectElapsedTime);
+        conferenceHost.setConnectionStartElapsedRealtimeMillis(connectElapsedTime);
 
         mTelephonyConnectionService = telephonyConnectionService;
         setConferenceHost(conferenceHost);
@@ -351,15 +347,15 @@
 
         conferenceCapabilities = changeBitmask(conferenceCapabilities,
                     Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL,
-                    can(capabilities, Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL));
+                (capabilities & Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL) != 0);
 
         if (isVideoConferencingSupported) {
             conferenceCapabilities = changeBitmask(conferenceCapabilities,
                     Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL,
-                    can(capabilities, Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL));
+                    (capabilities & Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL) != 0);
             conferenceCapabilities = changeBitmask(conferenceCapabilities,
                     Connection.CAPABILITY_CAN_UPGRADE_TO_VIDEO,
-                    can(capabilities, Connection.CAPABILITY_CAN_UPGRADE_TO_VIDEO));
+                    (capabilities & Connection.CAPABILITY_CAN_UPGRADE_TO_VIDEO) != 0);
         } else {
             // If video conferencing is not supported, explicitly turn off the remote video
             // capability and the ability to upgrade to video.
@@ -372,12 +368,16 @@
 
         conferenceCapabilities = changeBitmask(conferenceCapabilities,
                 Connection.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO,
-                can(capabilities, Connection.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO));
+                (capabilities & Connection.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO) != 0);
 
         conferenceCapabilities = changeBitmask(conferenceCapabilities,
                 Connection.CAPABILITY_CAN_PAUSE_VIDEO,
                 mConferenceHost.getVideoPauseSupported() && isVideoCapable());
 
+        conferenceCapabilities = changeBitmask(conferenceCapabilities,
+                Connection.CAPABILITY_ADD_PARTICIPANT,
+                (capabilities & Connection.CAPABILITY_ADD_PARTICIPANT) != 0);
+
         return conferenceCapabilities;
     }
 
@@ -391,19 +391,23 @@
     private int applyHostProperties(int conferenceProperties, int properties) {
         conferenceProperties = changeBitmask(conferenceProperties,
                 Connection.PROPERTY_HIGH_DEF_AUDIO,
-                can(properties, Connection.PROPERTY_HIGH_DEF_AUDIO));
+                (properties & Connection.PROPERTY_HIGH_DEF_AUDIO) != 0);
 
         conferenceProperties = changeBitmask(conferenceProperties,
                 Connection.PROPERTY_WIFI,
-                can(properties, Connection.PROPERTY_WIFI));
+                (properties & Connection.PROPERTY_WIFI) != 0);
 
         conferenceProperties = changeBitmask(conferenceProperties,
                 Connection.PROPERTY_IS_EXTERNAL_CALL,
-                can(properties, Connection.PROPERTY_IS_EXTERNAL_CALL));
+                (properties & Connection.PROPERTY_IS_EXTERNAL_CALL) != 0);
 
         conferenceProperties = changeBitmask(conferenceProperties,
                 Connection.PROPERTY_REMOTELY_HOSTED, !isConferenceHost());
 
+        conferenceProperties = changeBitmask(conferenceProperties,
+                Connection.PROPERTY_IS_ADHOC_CONFERENCE,
+                (properties & Connection.PROPERTY_IS_ADHOC_CONFERENCE) != 0);
+
         return conferenceProperties;
     }
 
@@ -443,11 +447,31 @@
         return VideoProfile.STATE_AUDIO_ONLY;
     }
 
+    public Connection getConferenceHost() {
+        return mConferenceHost;
+    }
+
+    /**
+     * @return The address's to which this Connection is currently communicating.
+     */
+    public final List<Uri> getParticipants() {
+        return mParticipants;
+    }
+
+    /**
+     * Sets the value of the {@link #getParticipants()}.
+     *
+     * @param address The new address's.
+     */
+    public final void setParticipants(List<Uri> address) {
+        mParticipants = address;
+    }
+
     /**
      * Invoked when the Conference and all its {@link Connection}s should be disconnected.
      * <p>
      * Hangs up the call via the conference host connection.  When the host connection has been
-     * successfully disconnected, the {@link #mConferenceHostListener} listener receives an
+     * successfully disconnected, the {@link #mTelephonyConnectionListener} listener receives an
      * {@code onDestroyed} event, which triggers the conference participant connections to be
      * disconnected.
      */
@@ -502,6 +526,41 @@
     }
 
     /**
+     * Supports adding participants to an existing conference call
+     *
+     * @param participants that are pulled to existing conference call
+     */
+    @Override
+    public void onAddConferenceParticipants(List<Uri> participants) {
+        if (mConferenceHost == null) {
+            return;
+        }
+        mConferenceHost.performAddConferenceParticipants(participants);
+    }
+
+    /**
+     * Invoked when the conference is answered.
+     */
+    @Override
+    public void onAnswer(int videoState) {
+        if (mConferenceHost == null) {
+            return;
+        }
+        mConferenceHost.performAnswer(videoState);
+    }
+
+    /**
+     * Invoked when the conference is rejected.
+     */
+    @Override
+    public void onReject() {
+        if (mConferenceHost == null) {
+            return;
+        }
+        mConferenceHost.performReject(android.telecom.Call.REJECT_REASON_DECLINED);
+    }
+
+    /**
      * Invoked when the conference should be put on hold.
      */
     @Override
@@ -625,7 +684,8 @@
      * that the conference is represented appropriately on Bluetooth devices.
      */
     private void updateManageConference() {
-        boolean couldManageConference = can(Connection.CAPABILITY_MANAGE_CONFERENCE);
+        boolean couldManageConference =
+                (getConnectionCapabilities() & Connection.CAPABILITY_MANAGE_CONFERENCE) != 0;
         boolean canManageConference = mFeatureFlagProxy.isUsingSinglePartyCallEmulation()
                 && mIsEmulatingSinglePartyCall
                 ? mConferenceParticipantConnections.size() > 1
@@ -698,11 +758,11 @@
             setAddress(mConferenceHost.getAddress(), mConferenceHost.getAddressPresentation());
             setCallerDisplayName(mConferenceHost.getCallerDisplayName(),
                     mConferenceHost.getCallerDisplayNamePresentation());
-            setConnectionStartElapsedRealTime(mConferenceHost.getConnectElapsedTimeMillis());
+            setConnectionStartElapsedRealtimeMillis(
+                    mConferenceHost.getConnectionStartElapsedRealtimeMillis());
             setConnectionTime(mConferenceHost.getConnectTimeMillis());
         }
 
-        mConferenceHost.addConnectionListener(mConferenceHostListener);
         mConferenceHost.addTelephonyConnectionListener(mTelephonyConnectionListener);
         setConnectionCapabilities(applyHostCapabilities(getConnectionCapabilities(),
                 mConferenceHost.getConnectionCapabilities(),
@@ -804,6 +864,13 @@
                                 "handleConferenceParticipantsUpdate: updateState, participant = %s",
                                 participant);
                         connection.updateState(participant.getState());
+                        if (participant.getState() == Connection.STATE_DISCONNECTED) {
+                            /**
+                             * Per {@link ConferenceParticipantConnection#updateState(int)}, we will
+                             * destroy the connection when its disconnected.
+                             */
+                            handleConnectionDestruction(connection);
+                        }
                         connection.setVideoState(parent.getVideoState());
                     }
                 }
@@ -817,6 +884,13 @@
                                         newParticipant.getHandle(),
                                         newParticipant.getEndpoint()));
                         connection.updateState(newParticipant.getState());
+                        /**
+                         * Per {@link ConferenceParticipantConnection#updateState(int)}, we will
+                         * destroy the connection when its disconnected.
+                         */
+                        if (newParticipant.getState() == Connection.STATE_DISCONNECTED) {
+                            handleConnectionDestruction(connection);
+                        }
                         connection.setVideoState(parent.getVideoState());
                     }
                 }
@@ -832,9 +906,8 @@
                     if (!participantUserEntities.contains(entry.getKey())) {
                         ConferenceParticipantConnection participant = entry.getValue();
                         participant.setDisconnected(new DisconnectCause(DisconnectCause.CANCELED));
-                        participant.removeConnectionListener(mParticipantListener);
-                        mTelephonyConnectionService.removeConnection(participant);
-                        removeConnection(participant);
+                        removeTelephonyConnection(participant);
+                        participant.destroy();
                         entryIterator.remove();
                         oldParticipantsRemoved = true;
                     }
@@ -846,8 +919,9 @@
                             + "newParticipantcount=%d", oldParticipantCount, newParticipantCount);
             // If the single party call emulation fature flag is enabled, we can potentially treat
             // the conference as a single party call when there is just one participant.
-            if (mFeatureFlagProxy.isUsingSinglePartyCallEmulation()) {
-                if (oldParticipantCount > 1 && newParticipantCount == 1) {
+            if (mFeatureFlagProxy.isUsingSinglePartyCallEmulation() &&
+                    !mConferenceHost.isAdhocConferenceCall()) {
+                if (oldParticipantCount != 1 && newParticipantCount == 1) {
                     // If number of participants goes to 1, emulate a single party call.
                     startEmulatingSinglePartyCall();
                 } else if (mIsEmulatingSinglePartyCall && !isSinglePartyConference) {
@@ -903,7 +977,8 @@
             Log.d(this,
                     "stopEmulatingSinglePartyCall: restored lone participant connect time");
             loneParticipant.setConnectTimeMillis(getConnectionTime());
-            loneParticipant.setConnectionStartElapsedRealTime(getConnectionStartElapsedRealTime());
+            loneParticipant.setConnectionStartElapsedRealtimeMillis(
+                    getConnectionStartElapsedRealtimeMillis());
         }
 
         // Tell Telecom its a conference again.
@@ -943,7 +1018,8 @@
             setAddress(entry.getAddress(), entry.getAddressPresentation());
             setCallerDisplayName(entry.getCallerDisplayName(),
                     entry.getCallerDisplayNamePresentation());
-            setConnectionStartElapsedRealTime(entry.getConnectElapsedTimeMillis());
+            setConnectionStartElapsedRealtimeMillis(
+                    entry.getConnectionStartElapsedRealtimeMillis());
             setConnectionTime(entry.getConnectTimeMillis());
             mLoneParticipantIdentity = new Pair<>(entry.getUserEntity(), entry.getEndpoint());
 
@@ -951,9 +1027,8 @@
             // again anyways.
             entry.setDisconnected(new DisconnectCause(DisconnectCause.CANCELED,
                     DisconnectCause.REASON_EMULATING_SINGLE_CALL));
-            entry.removeConnectionListener(mParticipantListener);
-            mTelephonyConnectionService.removeConnection(entry);
-            removeConnection(entry);
+            removeTelephonyConnection(entry);
+            entry.destroy();
             valueIterator.remove();
         }
 
@@ -961,7 +1036,8 @@
         setConferenceState(false);
 
         // Remove manage conference capability.
-        mCouldManageConference = can(Connection.CAPABILITY_MANAGE_CONFERENCE);
+        mCouldManageConference =
+                (getConnectionCapabilities() & Connection.CAPABILITY_MANAGE_CONFERENCE) != 0;
         int currentCapabilities = getConnectionCapabilities();
         currentCapabilities &= ~Connection.CAPABILITY_MANAGE_CONFERENCE;
         setConnectionCapabilities(currentCapabilities);
@@ -985,13 +1061,13 @@
         ConferenceParticipantConnection connection = new ConferenceParticipantConnection(
                 parent.getOriginalConnection(), participant,
                 !isConferenceHost() /* isRemotelyHosted */);
-        connection.addConnectionListener(mParticipantListener);
         if (participant.getConnectTime() == 0) {
             connection.setConnectTimeMillis(parent.getConnectTimeMillis());
-            connection.setConnectionStartElapsedRealTime(parent.getConnectElapsedTimeMillis());
+            connection.setConnectionStartElapsedRealtimeMillis(
+                    parent.getConnectionStartElapsedRealtimeMillis());
         } else {
             connection.setConnectTimeMillis(participant.getConnectTime());
-            connection.setConnectionStartElapsedRealTime(participant.getConnectElapsedTime());
+            connection.setConnectionStartElapsedRealtimeMillis(participant.getConnectElapsedTime());
         }
         // Indicate whether this is an MT or MO call to Telecom; the participant has the cached
         // data from the time of merge.
@@ -1007,7 +1083,7 @@
 
         mTelephonyConnectionService.addExistingConnection(mConferenceHostPhoneAccountHandle,
                 connection, this);
-        addConnection(connection);
+        addTelephonyConnection(connection);
     }
 
     /**
@@ -1018,12 +1094,11 @@
     private void removeConferenceParticipant(ConferenceParticipantConnection participant) {
         Log.i(this, "removeConferenceParticipant: %s", participant);
 
-        participant.removeConnectionListener(mParticipantListener);
         synchronized(mUpdateSyncRoot) {
             mConferenceParticipantConnections.remove(new Pair<>(participant.getUserEntity(),
                     participant.getEndpoint()));
         }
-        mTelephonyConnectionService.removeConnection(participant);
+        participant.destroy();
     }
 
     /**
@@ -1036,14 +1111,13 @@
             for (ConferenceParticipantConnection connection :
                     mConferenceParticipantConnections.values()) {
 
-                connection.removeConnectionListener(mParticipantListener);
                 // Mark disconnect cause as cancelled to ensure that the call is not logged in the
                 // call log.
                 connection.setDisconnected(new DisconnectCause(DisconnectCause.CANCELED));
-                mTelephonyConnectionService.removeConnection(connection);
                 connection.destroy();
             }
             mConferenceParticipantConnections.clear();
+            updateManageConference();
         }
     }
 
@@ -1100,7 +1174,7 @@
             boolean isHost = PhoneNumberUtils.compare(hostNumber, number);
 
             Log.v(this, "isParticipantHost(%s) : host: %s, participant %s", (isHost ? "Y" : "N"),
-                    Log.pii(hostNumber), Log.pii(number));
+                    Rlog.pii(LOG_TAG, hostNumber), Rlog.pii(LOG_TAG, number));
 
             if (isHost) {
                 return true;
@@ -1154,21 +1228,21 @@
                         mConferenceHost.isOutgoingCall());
                 // This is a newly created conference connection as a result of SRVCC
                 c.setConferenceSupported(true);
-                c.setConnectionProperties(
+                c.setTelephonyConnectionProperties(
                         c.getConnectionProperties() | Connection.PROPERTY_IS_DOWNGRADED_CONFERENCE);
                 c.updateState();
                 // Copy the connect time from the conferenceHost
                 c.setConnectTimeMillis(mConferenceHost.getConnectTimeMillis());
-                c.setConnectionStartElapsedRealTime(mConferenceHost.getConnectElapsedTimeMillis());
+                c.setConnectionStartElapsedRealtimeMillis(
+                        mConferenceHost.getConnectionStartElapsedRealtimeMillis());
                 mTelephonyConnectionService.addExistingConnection(phoneAccountHandle, c);
                 mTelephonyConnectionService.addConnectionToConferenceController(c);
             } // CDMA case not applicable for SRVCC
-            mConferenceHost.removeConnectionListener(mConferenceHostListener);
             mConferenceHost.removeTelephonyConnectionListener(mTelephonyConnectionListener);
             mConferenceHost = null;
             setDisconnected(new DisconnectCause(DisconnectCause.OTHER));
             disconnectConferenceParticipants();
-            destroy();
+            destroyTelephonyConference();
         }
 
         updateStatusHints();
@@ -1185,11 +1259,13 @@
         switch (state) {
             case Connection.STATE_INITIALIZING:
             case Connection.STATE_NEW:
-            case Connection.STATE_RINGING:
                 // No-op -- not applicable.
                 break;
+            case Connection.STATE_RINGING:
+                setConferenceOnRinging();
+                break;
             case Connection.STATE_DIALING:
-                setDialing();
+                setConferenceOnDialing();
                 break;
             case Connection.STATE_DISCONNECTED:
                 DisconnectCause disconnectCause;
@@ -1207,13 +1283,13 @@
                 }
                 setDisconnected(disconnectCause);
                 disconnectConferenceParticipants();
-                destroy();
+                destroyTelephonyConference();
                 break;
             case Connection.STATE_ACTIVE:
-                setActive();
+                setConferenceOnActive();
                 break;
             case Connection.STATE_HOLDING:
-                setOnHold();
+                setConferenceOnHold();
                 break;
         }
     }
@@ -1224,8 +1300,8 @@
      */
     private boolean isVideoCapable() {
         int capabilities = mConferenceHost.getConnectionCapabilities();
-        return can(capabilities, Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL)
-                && can(capabilities, Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL);
+        return (capabilities & Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL) != 0
+                && (capabilities & Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL) != 0;
     }
 
     private void updateStatusHints() {
@@ -1330,4 +1406,23 @@
         return isMaximumConferenceSizeEnforced()
                 && getNumberOfParticipants() >= getMaximumConferenceSize();
     }
+
+    /**
+     * @return {@code True} if the ImsConference is emulating single party call.
+     */
+    @VisibleForTesting
+    public boolean isEmulatingSinglePartyCall() {
+        return mIsEmulatingSinglePartyCall;
+    }
+
+    /**
+     * Handles destruction of a {@link ConferenceParticipantConnection}.
+     * We remove the participant from the list of tracked participants in the conference and
+     * update whether the conference can be managed.
+     * @param participant the conference participant.
+     */
+    private void handleConnectionDestruction(ConferenceParticipantConnection participant) {
+        removeConferenceParticipant(participant);
+        updateManageConference();
+    }
 }
diff --git a/src/com/android/services/telephony/ImsConferenceController.java b/src/com/android/services/telephony/ImsConferenceController.java
index 9902700..8789ba8 100644
--- a/src/com/android/services/telephony/ImsConferenceController.java
+++ b/src/com/android/services/telephony/ImsConferenceController.java
@@ -22,6 +22,7 @@
 import android.telecom.ConnectionService;
 import android.telecom.DisconnectCause;
 import android.telecom.PhoneAccountHandle;
+import com.android.telephony.Rlog;
 
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
@@ -38,43 +39,36 @@
  * Manages conferences for IMS connections.
  */
 public class ImsConferenceController {
+    private static final String LOG_TAG = "ImsConferenceController";
 
     /**
      * Conference listener; used to receive notification when a conference has been disconnected.
      */
-    private final Conference.Listener mConferenceListener = new Conference.Listener() {
+    private final TelephonyConferenceBase.TelephonyConferenceListener mConferenceListener =
+            new TelephonyConferenceBase.TelephonyConferenceListener() {
         @Override
         public void onDestroyed(Conference conference) {
             if (Log.VERBOSE) {
                 Log.v(ImsConferenceController.class, "onDestroyed: %s", conference);
             }
 
+            if (conference instanceof ImsConference) {
+                // Ims Conference call ended, so UE may now have the ability to initiate
+                // an Adhoc Conference call. Hence, try enabling adhoc conference capability
+                mTelecomAccountRegistry.refreshAdhocConference(true);
+            }
             mImsConferences.remove(conference);
         }
+
+        @Override
+        public void onStateChanged(Conference conference, int oldState, int newState) {
+            Log.v(this, "onStateChanged: Conference = " + conference);
+            recalculateConferenceable();
+        }
     };
 
-    /**
-     * Ims conference controller connection listener.  Used to respond to changes in state of the
-     * Telephony connections the controller is aware of.
-     */
-    private final Connection.Listener mConnectionListener = new Connection.Listener() {
-        @Override
-        public void onStateChanged(Connection c, int state) {
-            Log.v(this, "onStateChanged: %s", Log.pii(c.getAddress()));
-            recalculate();
-        }
-
-        @Override
-        public void onDisconnected(Connection c, DisconnectCause disconnectCause) {
-            Log.v(this, "onDisconnected: %s", Log.pii(c.getAddress()));
-            recalculate();
-        }
-
-        @Override
-        public void onDestroyed(Connection connection) {
-            remove(connection);
-        }
-
+    private final TelephonyConnection.TelephonyConnectionListener mTelephonyConnectionListener =
+            new TelephonyConnection.TelephonyConnectionListener() {
         @Override
         public void onConferenceStarted() {
             Log.v(this, "onConferenceStarted");
@@ -86,6 +80,23 @@
             Log.v(this, "onConferenceSupportedChanged");
             recalculate();
         }
+
+        @Override
+        public void onStateChanged(Connection c, int state) {
+            Log.v(this, "onStateChanged: %s", Rlog.pii(LOG_TAG, c.getAddress()));
+            recalculate();
+        }
+
+        @Override
+        public void onDisconnected(Connection c, DisconnectCause disconnectCause) {
+            Log.v(this, "onDisconnected: %s", Rlog.pii(LOG_TAG, c.getAddress()));
+            recalculate();
+        }
+
+        @Override
+        public void onDestroyed(Connection connection) {
+            remove(connection);
+        }
     };
 
     /**
@@ -101,10 +112,11 @@
     private final ArrayList<TelephonyConnection> mTelephonyConnections = new ArrayList<>();
 
     /**
-     * List of known {@link ImsConference}s.  Realistically there will only ever be a single
-     * concurrent IMS conference.
+     * List of known {@link ImsConference}s. There can be upto maximum two Ims conference calls.
+     * One conference call can be a host conference call and another conference call formed as a
+     * result of accepting incoming conference call.
      */
-    private final ArrayList<ImsConference> mImsConferences = new ArrayList<>(1);
+    private final ArrayList<ImsConference> mImsConferences = new ArrayList<>(2);
 
     private TelecomAccountRegistry mTelecomAccountRegistry;
 
@@ -122,6 +134,17 @@
         mFeatureFlagProxy = featureFlagProxy;
     }
 
+    void addConference(ImsConference conference) {
+        if (mImsConferences.contains(conference)) {
+            // Adding a duplicate realistically shouldn't happen.
+            Log.w(this, "addConference - conference already tracked; conference=%s", conference);
+            return;
+        }
+        mImsConferences.add(conference);
+        conference.addTelephonyConferenceListener(mConferenceListener);
+        recalculateConferenceable();
+    }
+
     /**
      * Adds a new connection to the IMS conference controller.
      *
@@ -148,8 +171,9 @@
         }
 
         mTelephonyConnections.add(connection);
-        connection.addConnectionListener(mConnectionListener);
+        connection.addTelephonyConnectionListener(mTelephonyConnectionListener);
         recalculateConference();
+        recalculateConferenceable();
     }
 
     /**
@@ -175,7 +199,10 @@
             Log.v(this, "remove connection: %s", connection);
         }
 
-        connection.removeConnectionListener(mConnectionListener);
+        if (connection instanceof TelephonyConnection) {
+            TelephonyConnection telephonyConnection = (TelephonyConnection) connection;
+            telephonyConnection.removeTelephonyConnectionListener(mTelephonyConnectionListener);
+        }
         mTelephonyConnections.remove(connection);
         recalculateConferenceable();
     }
@@ -246,6 +273,11 @@
                 continue;
             }
 
+            // Since UE cannot host two conference calls, remove the ability to initiate
+            // another conference call as there already exists a conference call, which
+            // is hosted on this device.
+            mTelecomAccountRegistry.refreshAdhocConference(false);
+
             switch (conference.getState()) {
                 case Connection.STATE_ACTIVE:
                     //fall through
@@ -356,6 +388,10 @@
             Log.v(this, "Start new ImsConference - connection: %s", connection);
         }
 
+        if (connection.isAdhocConferenceCall()) {
+            Log.w(this, "start new ImsConference - control should never come here");
+            return;
+        }
         // Make a clone of the connection which will become the Ims conference host connection.
         // This is necessary since the Connection Service does not support removing a connection
         // from Telecom.  Instead we create a new instance and remove the old one from telecom.
@@ -379,7 +415,7 @@
         ImsConference conference = new ImsConference(mTelecomAccountRegistry, mConnectionService,
                 conferenceHostConnection, phoneAccountHandle, mFeatureFlagProxy);
         conference.setState(conferenceHostConnection.getState());
-        conference.addListener(mConferenceListener);
+        conference.addTelephonyConferenceListener(mConferenceListener);
         conference.updateConferenceParticipantsAfterCreation();
         mConnectionService.addConference(conference);
         conferenceHostConnection.setTelecomCallId(conference.getTelecomCallId());
@@ -387,12 +423,11 @@
         // Cleanup TelephonyConnection which backed the original connection and remove from telecom.
         // Use the "Other" disconnect cause to ensure the call is logged to the call log but the
         // disconnect tone is not played.
-        connection.removeConnectionListener(mConnectionListener);
-        connection.clearOriginalConnection();
-        connection.setDisconnected(new DisconnectCause(DisconnectCause.OTHER,
+        connection.removeTelephonyConnectionListener(mTelephonyConnectionListener);
+        connection.setTelephonyConnectionDisconnected(new DisconnectCause(DisconnectCause.OTHER,
                 android.telephony.DisconnectCause.toString(
                         android.telephony.DisconnectCause.IMS_MERGED_SUCCESSFULLY)));
-        connection.destroy();
+        connection.close();
         mImsConferences.add(conference);
         // If one of the participants failed to join the conference, recalculate will set the
         // conferenceable connections for the conference to show merge calls option.
diff --git a/src/com/android/services/telephony/Log.java b/src/com/android/services/telephony/Log.java
index 9941a59..57bf849 100644
--- a/src/com/android/services/telephony/Log.java
+++ b/src/com/android/services/telephony/Log.java
@@ -16,8 +16,6 @@
 
 package com.android.services.telephony;
 
-import android.content.Context;
-
 /**
  * Manages logging for the entire module.
  */
@@ -39,72 +37,80 @@
         return FORCE_LOGGING || android.util.Log.isLoggable(TAG, level);
     }
 
-    public static void initLogging(Context context) {
-        // Register Telephony with the Telecom Logger.
-        android.telecom.Log.setTag(TAG);
-        android.telecom.Log.setSessionContext(context);
-    }
-
     // Relay log messages to Telecom
     // TODO: Redo namespace of Telephony to use these methods directly.
 
     public static void d(String prefix, String format, Object... args) {
-        android.telecom.Log.d(prefix, format, args);
+        android.util.Log.d(TAG, (args == null || args.length == 0) ? format :
+                String.format(prefix + ": " + format, args));
     }
 
     public static void d(Object objectPrefix, String format, Object... args) {
-        android.telecom.Log.d(objectPrefix, format, args);
+        android.util.Log.d(TAG, (args == null || args.length == 0) ? format :
+                String.format(getPrefixFromObject(objectPrefix) + ": " + format, args));
     }
 
     public static void i(String prefix, String format, Object... args) {
-        android.telecom.Log.i(prefix, format, args);
+        android.util.Log.i(TAG, (args == null || args.length == 0) ? format :
+                String.format(prefix + ": " + format, args));
     }
 
     public static void i(Object objectPrefix, String format, Object... args) {
-        android.telecom.Log.i(objectPrefix, format, args);
+        android.util.Log.i(TAG, (args == null || args.length == 0) ? format :
+                String.format(getPrefixFromObject(objectPrefix) + ": " + format, args));
     }
 
     public static void v(String prefix, String format, Object... args) {
-        android.telecom.Log.v(prefix, format, args);
+        android.util.Log.v(TAG, (args == null || args.length == 0) ? format :
+                String.format(prefix + ": " + format, args));
     }
 
     public static void v(Object objectPrefix, String format, Object... args) {
-        android.telecom.Log.v(objectPrefix, format, args);
+        android.util.Log.v(TAG, (args == null || args.length == 0) ? format :
+                String.format(getPrefixFromObject(objectPrefix) + ": " + format, args));
     }
 
     public static void w(String prefix, String format, Object... args) {
-        android.telecom.Log.w(prefix, format, args);
+        android.util.Log.w(TAG, (args == null || args.length == 0) ? format :
+                String.format(prefix + ": " + format, args));
     }
 
     public static void w(Object objectPrefix, String format, Object... args) {
-        android.telecom.Log.w(objectPrefix, format, args);
+        android.util.Log.w(TAG, (args == null || args.length == 0) ? format :
+                String.format(getPrefixFromObject(objectPrefix) + ": " + format, args));
     }
 
     public static void e(String prefix, Throwable tr, String format, Object... args) {
-        android.telecom.Log.e(prefix, tr, format, args);
+        android.util.Log.e(TAG, (args == null || args.length == 0) ? format :
+                String.format(prefix + ": " + format, args), tr);
     }
 
     public static void e(Object objectPrefix, Throwable tr, String format, Object... args) {
-        android.telecom.Log.e(objectPrefix, tr, format, args);
+        android.util.Log.e(TAG, (args == null || args.length == 0) ? format :
+                String.format(getPrefixFromObject(objectPrefix) + ": " + format, args), tr);
     }
 
     public static void wtf(String prefix, Throwable tr, String format, Object... args) {
-        android.telecom.Log.wtf(prefix, tr, format, args);
+        android.util.Log.wtf(TAG, (args == null || args.length == 0) ? format :
+                String.format(prefix + ": " + format, args), tr);
     }
 
     public static void wtf(Object objectPrefix, Throwable tr, String format, Object... args) {
-        android.telecom.Log.wtf(objectPrefix, tr, format, args);
+        android.util.Log.wtf(TAG, (args == null || args.length == 0) ? format :
+                String.format(getPrefixFromObject(objectPrefix) + ": " + format, args), tr);
     }
 
     public static void wtf(String prefix, String format, Object... args) {
-        android.telecom.Log.wtf(prefix, format, args);
+        android.util.Log.wtf(TAG, (args == null || args.length == 0) ? format :
+                String.format(prefix + ": " + format, args));
     }
 
     public static void wtf(Object objectPrefix, String format, Object... args) {
-        android.telecom.Log.wtf(objectPrefix, format, args);
+        android.util.Log.wtf(TAG, (args == null || args.length == 0) ? format :
+                String.format(getPrefixFromObject(objectPrefix) + ": " + format, args));
     }
 
-    public static String pii(Object pii) {
-        return android.telecom.Log.pii(pii);
+    private static String getPrefixFromObject(Object obj) {
+        return obj == null ? "<null>" : obj.getClass().getSimpleName();
     }
 }
diff --git a/src/com/android/services/telephony/PstnIncomingCallNotifier.java b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
index a2ced9e..a917f3d 100644
--- a/src/com/android/services/telephony/PstnIncomingCallNotifier.java
+++ b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
@@ -25,6 +25,7 @@
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
+import com.android.telephony.Rlog;
 import android.text.TextUtils;
 
 import com.android.internal.telephony.Call;
@@ -40,8 +41,6 @@
 import com.android.phone.NumberVerificationManager;
 import com.android.phone.PhoneUtils;
 
-import com.google.common.base.Preconditions;
-
 import java.util.Objects;
 
 /**
@@ -49,6 +48,8 @@
  * occurence. One instance of these exists for each of the telephony-based call services.
  */
 final class PstnIncomingCallNotifier {
+    private static final String LOG_TAG = "PstnIncomingCallNotifier";
+
     /** New ringing connection event code. */
     private static final int EVENT_NEW_RINGING_CONNECTION = 100;
     private static final int EVENT_CDMA_CALL_WAITING = 101;
@@ -93,7 +94,9 @@
      * @param phone The phone object for listening to incoming calls.
      */
     PstnIncomingCallNotifier(Phone phone) {
-        Preconditions.checkNotNull(phone);
+        if (phone == null) {
+            throw new NullPointerException();
+        }
 
         mPhone = phone;
 
@@ -181,7 +184,7 @@
                     // Presentation of the number is allowed, so we ensure the number matches the
                     // one in the call waiting information.
                     Log.i(this, "handleCdmaCallWaiting: inform telecom of waiting call; "
-                            + "number = %s", Log.pii(number));
+                            + "number = %s", Rlog.pii(LOG_TAG, number));
                     sendIncomingCallIntent(connection);
                 } else {
                     Log.w(this, "handleCdmaCallWaiting: presentation or number do not match, not"
@@ -248,7 +251,8 @@
                     // connection already disconnected. Do nothing
                 }
             } else {
-                TelecomManager.from(mPhone.getContext()).addNewUnknownCall(handle, extras);
+                TelecomManager tm = mPhone.getContext().getSystemService(TelecomManager.class);
+                tm.addNewUnknownCall(handle, extras);
             }
         } else {
             Log.i(this, "swapped an old connection, new one is: %s", connection);
@@ -274,7 +278,12 @@
             if (((ImsPhoneConnection) connection).isRttEnabledForCall()) {
                 extras.putBoolean(TelecomManager.EXTRA_START_CALL_WITH_RTT, true);
             }
+            if (((ImsPhoneConnection) connection).isIncomingCallAutoRejected()) {
+                extras.putString(TelecomManager.EXTRA_CALL_DISCONNECT_MESSAGE,
+                        "Call Dropped by lower layers");
+            }
         }
+
         PhoneAccountHandle handle = findCorrectPhoneAccountHandle();
         if (handle == null) {
             try {
@@ -283,7 +292,12 @@
                 // connection already disconnected. Do nothing
             }
         } else {
-            TelecomManager.from(mPhone.getContext()).addNewIncomingCall(handle, extras);
+            TelecomManager tm = mPhone.getContext().getSystemService(TelecomManager.class);
+            if (connection.isMultiparty()) {
+                tm.addNewIncomingConference(handle, extras);
+            } else {
+                tm.addNewIncomingCall(handle, extras);
+            }
         }
     }
 
diff --git a/src/com/android/services/telephony/PstnPhoneCapabilitiesNotifier.java b/src/com/android/services/telephony/PstnPhoneCapabilitiesNotifier.java
index b9cbf6e..4038dd1 100644
--- a/src/com/android/services/telephony/PstnPhoneCapabilitiesNotifier.java
+++ b/src/com/android/services/telephony/PstnPhoneCapabilitiesNotifier.java
@@ -21,7 +21,6 @@
 import android.os.Message;
 
 import com.android.internal.telephony.Phone;
-import com.android.internal.util.Preconditions;
 
 /**
  * Listens to phone's capabilities changed event and notifies Telecomm. One instance of these exists
@@ -55,7 +54,9 @@
 
     /*package*/
     PstnPhoneCapabilitiesNotifier(Phone phone, Listener listener) {
-        Preconditions.checkNotNull(phone);
+        if (phone == null) {
+            throw new NullPointerException();
+        }
 
         mPhone = phone;
         mListener = listener;
diff --git a/src/com/android/services/telephony/RadioOnHelper.java b/src/com/android/services/telephony/RadioOnHelper.java
index 288c72c..25ac220 100644
--- a/src/com/android/services/telephony/RadioOnHelper.java
+++ b/src/com/android/services/telephony/RadioOnHelper.java
@@ -49,13 +49,19 @@
     }
 
     private void setupListeners() {
-        if (mListeners != null) {
-            return;
+        if (mListeners == null) {
+            mListeners = new ArrayList<>(2);
         }
-        mListeners = new ArrayList<>(2);
-        for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+        int activeModems = TelephonyManager.from(mContext).getActiveModemCount();
+        // Add new listeners if active modem count increased.
+        while (mListeners.size() < activeModems) {
             mListeners.add(new RadioOnStateListener());
         }
+        // Clean up listeners if active modem count decreased.
+        while (mListeners.size() > activeModems) {
+            mListeners.get(mListeners.size() - 1).cleanup();
+            mListeners.remove(mListeners.size() - 1);
+        }
     }
     /**
      * Starts the "turn on radio" sequence. This is the (single) external API of the
@@ -71,28 +77,30 @@
      * RadioOnHelper's handler (thus ensuring that the rest of the sequence is entirely
      * serialized, and runs on the main looper.)
      */
-    public void triggerRadioOnAndListen(RadioOnStateListener.Callback callback) {
+    public void triggerRadioOnAndListen(RadioOnStateListener.Callback callback,
+            boolean forEmergencyCall, Phone phoneForEmergencyCall) {
         setupListeners();
         mCallback = callback;
         mInProgressListeners.clear();
         mIsRadioOnCallingEnabled = false;
-        for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+        for (int i = 0; i < TelephonyManager.from(mContext).getActiveModemCount(); i++) {
             Phone phone = PhoneFactory.getPhone(i);
             if (phone == null) {
                 continue;
             }
 
             mInProgressListeners.add(mListeners.get(i));
-            mListeners.get(i).waitForRadioOn(phone, this);
+            mListeners.get(i).waitForRadioOn(phone, this, forEmergencyCall,
+                    forEmergencyCall && phone == phoneForEmergencyCall);
         }
 
-        powerOnRadio();
+        powerOnRadio(forEmergencyCall, phoneForEmergencyCall);
     }
     /**
      * Attempt to power on the radio (i.e. take the device out of airplane mode). We'll eventually
      * get an onServiceStateChanged() callback when the radio successfully comes up.
      */
-    private void powerOnRadio() {
+    private void powerOnRadio(boolean forEmergencyCall, Phone phoneForEmergencyCall) {
 
         // If airplane mode is on, we turn it off the same way that the Settings activity turns it
         // off.
@@ -104,6 +112,11 @@
             Settings.Global.putInt(mContext.getContentResolver(),
                     Settings.Global.AIRPLANE_MODE_ON, 0);
 
+            for (Phone phone : PhoneFactory.getPhones()) {
+                Log.d(this, "powerOnRadio, enabling Radio");
+                phone.setRadioPower(true, forEmergencyCall, phone == phoneForEmergencyCall, false);
+            }
+
             // Post the broadcast intend for change in airplane mode
             // TODO: We really should not be in charge of sending this broadcast.
             // If changing the setting is sufficient to trigger all of the rest of the logic,
diff --git a/src/com/android/services/telephony/RadioOnStateListener.java b/src/com/android/services/telephony/RadioOnStateListener.java
index 729f6a9..1bc6969 100644
--- a/src/com/android/services/telephony/RadioOnStateListener.java
+++ b/src/com/android/services/telephony/RadioOnStateListener.java
@@ -56,6 +56,9 @@
     @VisibleForTesting
     public static final int MSG_SERVICE_STATE_CHANGED = 2;
     private static final int MSG_RETRY_TIMEOUT = 3;
+    @VisibleForTesting
+    public static final int MSG_RADIO_ON = 4;
+    public static final int MSG_RADIO_OFF_OR_NOT_AVAILABLE = 5;
 
     private final Handler mHandler = new Handler(Looper.getMainLooper()) {
         @Override
@@ -67,7 +70,10 @@
                         Phone phone = (Phone) args.arg1;
                         RadioOnStateListener.Callback callback =
                                 (RadioOnStateListener.Callback) args.arg2;
-                        startSequenceInternal(phone, callback);
+                        boolean forEmergencyCall = (boolean) args.arg3;
+                        boolean isSelectedPhoneForEmergencyCall = (boolean) args.arg4;
+                        startSequenceInternal(phone, callback, forEmergencyCall,
+                                isSelectedPhoneForEmergencyCall);
                     } finally {
                         args.recycle();
                     }
@@ -75,6 +81,12 @@
                 case MSG_SERVICE_STATE_CHANGED:
                     onServiceStateChanged((ServiceState) ((AsyncResult) msg.obj).result);
                     break;
+                case MSG_RADIO_ON:
+                    onRadioOn();
+                    break;
+                case MSG_RADIO_OFF_OR_NOT_AVAILABLE:
+                    registerForRadioOn();
+                    break;
                 case MSG_RETRY_TIMEOUT:
                     onRetryTimeout();
                     break;
@@ -88,6 +100,10 @@
 
     private Callback mCallback;  // The callback to notify upon completion.
     private Phone mPhone;  // The phone that will attempt to place the call.
+    private boolean mForEmergencyCall; // Whether radio is being turned on for emergency call.
+    // Whether this phone is selected to place emergency call. Can be true only if
+    // mForEmergencyCall is true.
+    private boolean mSelectedPhoneForEmergencyCall;
     private int mNumRetriesSoFar;
 
     /**
@@ -104,7 +120,8 @@
      * RadioOnStateListener's handler (thus ensuring that the rest of the sequence is entirely
      * serialized, and runs only on the handler thread.)
      */
-    public void waitForRadioOn(Phone phone, Callback callback) {
+    public void waitForRadioOn(Phone phone, Callback callback,
+            boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall) {
         Log.d(this, "waitForRadioOn: Phone " + phone.getPhoneId());
 
         if (mPhone != null) {
@@ -115,6 +132,8 @@
         SomeArgs args = SomeArgs.obtain();
         args.arg1 = phone;
         args.arg2 = callback;
+        args.arg3 = forEmergencyCall;
+        args.arg4 = isSelectedPhoneForEmergencyCall;
         mHandler.obtainMessage(MSG_START_SEQUENCE, args).sendToTarget();
     }
 
@@ -123,7 +142,8 @@
      *
      * @see #waitForRadioOn
      */
-    private void startSequenceInternal(Phone phone, Callback callback) {
+    private void startSequenceInternal(Phone phone, Callback callback,
+            boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall) {
         Log.d(this, "startSequenceInternal: Phone " + phone.getPhoneId());
 
         // First of all, clean up any state left over from a prior RadioOn call sequence. This
@@ -133,8 +153,13 @@
 
         mPhone = phone;
         mCallback = callback;
+        mForEmergencyCall = forEmergencyCall;
+        mSelectedPhoneForEmergencyCall = isSelectedPhoneForEmergencyCall;
 
         registerForServiceStateChanged();
+        // Register for RADIO_OFF to handle cases where emergency call is dialed before
+        // we receive UNSOL_RESPONSE_RADIO_STATE_CHANGED with RADIO_OFF.
+        registerForRadioOff();
         // Next step: when the SERVICE_STATE_CHANGED event comes in, we'll retry the call; see
         // onServiceStateChanged(). 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.
@@ -169,6 +194,17 @@
         }
     }
 
+    private void onRadioOn() {
+        ServiceState state =  mPhone.getServiceState();
+        Log.d(this, "onRadioOn, state = %s, Phone = %s", state,
+                mPhone.getPhoneId());
+        if (isOkToCall(state.getState())) {
+            onComplete(true);
+            cleanup();
+        } else {
+            Log.d(this, "onRadioOn: not ready to call yet, keep waiting.");
+        }
+    }
     /**
      * Callback to see if it is okay to call yet, given the current conditions.
      */
@@ -208,7 +244,8 @@
                 cleanup();
             } else {
                 Log.d(this, "Trying (again) to turn on the radio.");
-                mPhone.setRadioPower(true);
+                mPhone.setRadioPower(true, mForEmergencyCall, mSelectedPhoneForEmergencyCall,
+                        false);
                 startRetryTimer();
             }
         }
@@ -231,7 +268,7 @@
      * 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() {
+    public void cleanup() {
         Log.d(this, "cleanup()");
 
         // This will send a failure call back if callback has yet to be invoked.  If the callback
@@ -239,6 +276,8 @@
         onComplete(false);
 
         unregisterForServiceStateChanged();
+        unregisterForRadioOff();
+        unregisterForRadioOn();
         cancelRetryTimer();
 
         // Used for unregisterForServiceStateChanged() so we null it out here instead.
@@ -271,6 +310,31 @@
         mHandler.removeMessages(MSG_SERVICE_STATE_CHANGED);  // Clean up any pending messages too
     }
 
+    private void registerForRadioOff() {
+        mPhone.mCi.registerForOffOrNotAvailable(mHandler, MSG_RADIO_OFF_OR_NOT_AVAILABLE, null);
+    }
+
+    private void unregisterForRadioOff() {
+        // This method is safe to call even if we haven't set mPhone yet.
+        if (mPhone != null) {
+            mPhone.mCi.unregisterForOffOrNotAvailable(mHandler);  // Safe even if unnecessary
+        }
+        mHandler.removeMessages(MSG_RADIO_OFF_OR_NOT_AVAILABLE);  // Clean up any pending messages
+    }
+
+    private void registerForRadioOn() {
+        unregisterForRadioOff();
+        mPhone.mCi.registerForOn(mHandler, MSG_RADIO_ON, null);
+    }
+
+    private void unregisterForRadioOn() {
+        // This method is safe to call even if we haven't set mPhone yet.
+        if (mPhone != null) {
+            mPhone.mCi.unregisterForOn(mHandler);  // Safe even if unnecessary
+        }
+        mHandler.removeMessages(MSG_RADIO_ON);  // Clean up any pending messages too
+    }
+
     private void onComplete(boolean isRadioReady) {
         if (mCallback != null) {
             Callback tempCallback = mCallback;
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index 0b7f3c0..8a09f8f 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -35,8 +35,8 @@
 import android.os.Looper;
 import android.os.PersistableBundle;
 import android.os.UserHandle;
-import android.os.UserManager;
 import android.provider.Settings;
+import android.provider.Telephony;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
@@ -49,22 +49,28 @@
 import android.telephony.TelephonyManager;
 import android.telephony.ims.ImsException;
 import android.telephony.ims.ImsMmTelManager;
+import android.telephony.ims.ImsRcsManager;
+import android.telephony.ims.ImsReasonInfo;
+import android.telephony.ims.RegistrationManager;
 import android.telephony.ims.feature.MmTelFeature;
 import android.telephony.ims.stub.ImsRegistrationImplBase;
 import android.text.TextUtils;
 
 import com.android.ims.ImsManager;
+import com.android.internal.telephony.LocaleTracker;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneFactory;
 import com.android.internal.telephony.SubscriptionController;
 import com.android.phone.PhoneGlobals;
 import com.android.phone.PhoneUtils;
 import com.android.phone.R;
+import com.android.telephony.Rlog;
 
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Optional;
+import java.util.function.Predicate;
 
 /**
  * Owns all data we have registered with Telecom including handling dynamic addition and
@@ -72,6 +78,7 @@
  */
 public class TelecomAccountRegistry {
     private static final boolean DBG = false; /* STOP SHIP if true */
+    private static final String LOG_TAG = "TelecomAccountRegistry";
 
     // This icon is the one that is used when the Slot ID that we have for a particular SIM
     // is not supported, i.e. SubscriptionManager.INVALID_SLOT_ID or the 5th SIM in a phone.
@@ -85,9 +92,11 @@
         private final PstnPhoneCapabilitiesNotifier mPhoneCapabilitiesNotifier;
         private boolean mIsEmergency;
         private boolean mIsRttCapable;
+        private boolean mIsAdhocConfCapable;
         private boolean mIsEmergencyPreferred;
         private MmTelFeature.MmTelCapabilities mMmTelCapabilities;
         private ImsMmTelManager.CapabilityCallback mMmtelCapabilityCallback;
+        private RegistrationManager.RegistrationCallback mImsRegistrationCallback;
         private ImsMmTelManager mMmTelManager;
         private final boolean mIsDummy;
         private boolean mIsVideoCapable;
@@ -105,6 +114,7 @@
             mPhone = phone;
             mIsEmergency = isEmergency;
             mIsDummy = isDummy;
+            mIsAdhocConfCapable = mPhone.isImsRegistered();
             mAccount = registerPstnPhoneAccount(isEmergency, isDummy);
             Log.i(this, "Registered phoneAccount: %s with handle: %s",
                     mAccount, mAccount.getAccountHandle());
@@ -137,15 +147,38 @@
                     updateRttCapability();
                 }
             };
-
             registerMmTelCapabilityCallback();
+
+            mImsRegistrationCallback = new RegistrationManager.RegistrationCallback() {
+                @Override
+                public void onRegistered(int imsRadioTech) {
+                    updateAdhocConfCapability(true);
+                }
+
+                @Override
+                public void onRegistering(int imsRadioTech) {
+                    updateAdhocConfCapability(false);
+                }
+
+                @Override
+                public void onUnregistered(ImsReasonInfo imsReasonInfo) {
+                    updateAdhocConfCapability(false);
+                }
+            };
+            registerImsRegistrationCallback();
         }
 
         void teardown() {
             mIncomingCallNotifier.teardown();
             mPhoneCapabilitiesNotifier.teardown();
-            if (mMmTelManager != null && mMmtelCapabilityCallback != null) {
-                mMmTelManager.unregisterMmTelCapabilityCallback(mMmtelCapabilityCallback);
+            if (mMmTelManager != null) {
+                if (mMmtelCapabilityCallback != null) {
+                    mMmTelManager.unregisterMmTelCapabilityCallback(mMmtelCapabilityCallback);
+                }
+
+                if (mImsRegistrationCallback != null) {
+                    mMmTelManager.unregisterImsRegistrationCallback(mImsRegistrationCallback);
+                }
             }
         }
 
@@ -170,6 +203,25 @@
             }
         }
 
+        private void registerImsRegistrationCallback() {
+            if (mMmTelManager == null || mImsRegistrationCallback == null) {
+                return;
+            }
+
+            try {
+                mMmTelManager.registerImsRegistrationCallback(mContext.getMainExecutor(),
+                        mImsRegistrationCallback);
+            } catch (ImsException e) {
+                Log.w(this, "registerImsRegistrationCallback: registration failed, no ImsService"
+                        + " available. Exception: " + e.getMessage());
+                return;
+            } catch (IllegalArgumentException e) {
+                Log.w(this, "registerImsRegistrationCallback: registration failed, invalid"
+                        + " subscription, Exception" + e.getMessage());
+                return;
+            }
+        }
+
         /**
          * Trigger re-registration of this account.
          */
@@ -225,6 +277,7 @@
             // slotId from the subId or the phoneId in all instances.
             SubscriptionInfo record =
                     mSubscriptionManager.getActiveSubscriptionInfo(subId);
+            TelephonyManager tm = mTelephonyManager.createForSubscriptionId(subId);
 
             if (isEmergency) {
                 label = mContext.getResources().getString(R.string.sim_label_emergency_calls);
@@ -233,7 +286,7 @@
             } else if (mTelephonyManager.getPhoneCount() == 1) {
                 // For single-SIM devices, we show the label and description as whatever the name of
                 // the network is.
-                description = label = mTelephonyManager.getNetworkOperatorName();
+                description = label = tm.getNetworkOperatorName();
             } else {
                 CharSequence subDisplayName = null;
 
@@ -320,6 +373,12 @@
                 extras.putAll(getPhoneAccountExtras());
             }
 
+            if (mIsAdhocConfCapable && isCarrierAdhocConferenceCallSupported()) {
+                capabilities |= PhoneAccount.CAPABILITY_ADHOC_CONFERENCE_CALLING;
+            } else {
+                capabilities &= ~PhoneAccount.CAPABILITY_ADHOC_CONFERENCE_CALLING;
+            }
+
             final boolean isHandoverFromSupported = mContext.getResources().getBoolean(
                     R.bool.config_support_handover_from);
             if (isHandoverFromSupported && !isEmergency) {
@@ -390,7 +449,7 @@
             }
             if(isMergedSim) {
                 groupId = GROUP_PREFIX + line1Number;
-                Log.i(this, "Adding Merged Account with group: " + Log.pii(groupId));
+                Log.i(this, "Adding Merged Account with group: " + Rlog.pii(LOG_TAG, groupId));
             }
 
             PhoneAccount account = PhoneAccount.builder(phoneAccountHandle, label)
@@ -485,16 +544,31 @@
         }
 
         /**
-         * Determines from carrier configuration whether RCS presence indication for video calls is
-         * supported.
+         * Determines from carrier configuration and user setting whether RCS presence indication
+         * for video calls is supported.
          *
          * @return {@code true} if RCS presence indication for video calls is supported.
          */
         private boolean isCarrierVideoPresenceSupported() {
             PersistableBundle b =
                     PhoneGlobals.getInstance().getCarrierConfigForSubId(mPhone.getSubId());
-            return b != null &&
-                    b.getBoolean(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL);
+            boolean carrierConfigEnabled = b != null
+                    && b.getBoolean(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL);
+            return carrierConfigEnabled && isUserContactDiscoverySettingEnabled();
+        }
+
+        /**
+         * @return true if the user has enabled contact discovery for the subscription associated
+         * with this account entry, false otherwise.
+         */
+        private boolean isUserContactDiscoverySettingEnabled() {
+            try {
+                ImsRcsManager manager = mImsManager.getImsRcsManager(mPhone.getSubId());
+                return manager.getUceAdapter().isUceSettingEnabled();
+            } catch (Exception e) {
+                Log.w(LOG_TAG, "isUserContactDiscoverySettingEnabled caught exception: " + e);
+                return false;
+            }
         }
 
         /**
@@ -510,6 +584,19 @@
         }
 
         /**
+         * Determines from carrier config whether adhoc conference calling is supported.
+         *
+         * @return {@code true} if adhoc conference calling is supported, {@code false} otherwise.
+         */
+        private boolean isCarrierAdhocConferenceCallSupported() {
+            PersistableBundle b =
+                    PhoneGlobals.getInstance().getCarrierConfigForSubId(mPhone.getSubId());
+            return b != null &&
+                    b.getBoolean(CarrierConfigManager.KEY_SUPPORT_ADHOC_CONFERENCE_CALLS_BOOL);
+        }
+
+
+        /**
          * Determines from carrier config whether merging calls is supported.
          *
          * @return {@code true} if merging calls is supported, {@code false} otherwise.
@@ -663,6 +750,45 @@
             }
         }
 
+        public void updateAdhocConfCapability(boolean isAdhocConfCapable) {
+            synchronized (mAccountsLock) {
+                if (!mAccounts.contains(this)) {
+                    // Account has already been torn down, don't try to register it again.
+                    // This handles the case where teardown has already happened, and we got a Ims
+                    // registartion update that lost the race for the mAccountsLock.  In such a
+                    // scenario by the time we get here, the original phone account could have been
+                    // torn down.
+                    return;
+                }
+
+                if (isAdhocConfCapable !=  mIsAdhocConfCapable) {
+                    Log.i(this, "updateAdhocConfCapability - changed, new value: "
+                            + isAdhocConfCapable);
+                    mIsAdhocConfCapable = isAdhocConfCapable;
+                    mAccount = registerPstnPhoneAccount(mIsEmergency, mIsDummy);
+                }
+            }
+        }
+
+        public void updateVideoPresenceCapability() {
+            synchronized (mAccountsLock) {
+                if (!mAccounts.contains(this)) {
+                    // Account has already been torn down, don't try to register it again.
+                    // This handles the case where teardown has already happened, and we got a Ims
+                    // registration update that lost the race for the mAccountsLock.  In such a
+                    // scenario by the time we get here, the original phone account could have been
+                    // torn down.
+                    return;
+                }
+                boolean isVideoPresenceSupported = isCarrierVideoPresenceSupported();
+                if (mIsVideoPresenceSupported != isVideoPresenceSupported) {
+                    Log.i(this, "updateVideoPresenceCapability for subId=" + mPhone.getSubId()
+                            + ", new value= " + isVideoPresenceSupported);
+                    mAccount = registerPstnPhoneAccount(mIsEmergency, mIsDummy);
+                }
+            }
+        }
+
         public void updateRttCapability() {
             boolean isRttEnabled = isRttCurrentlySupported();
             if (isRttEnabled != mIsRttCapable) {
@@ -685,14 +811,51 @@
          * device.
          */
         private boolean isRttCurrentlySupported() {
+            // First check the emergency case -- if it's supported and turned on,
+            // we want to present RTT as available on the emergency-only phone account
+            if (mIsEmergency) {
+                // First check whether the device supports it
+                boolean devicesSupportsRtt =
+                        mContext.getResources().getBoolean(R.bool.config_support_rtt);
+                boolean deviceSupportsEmergencyRtt = mContext.getResources().getBoolean(
+                        R.bool.config_support_simless_emergency_rtt);
+                if (!(deviceSupportsEmergencyRtt && devicesSupportsRtt)) {
+                    Log.i(this, "isRttCurrentlySupported -- emergency acct and no device support");
+                    return false;
+                }
+                // Next check whether we're in or near a country that supports it
+                String country =
+                        mPhone.getServiceStateTracker().getLocaleTracker()
+                                .getCurrentCountry().toLowerCase();
+                String[] supportedCountries = mContext.getResources().getStringArray(
+                        R.array.config_simless_emergency_rtt_supported_countries);
+                if (supportedCountries == null || Arrays.stream(supportedCountries).noneMatch(
+                        Predicate.isEqual(country))) {
+                    Log.i(this, "isRttCurrentlySupported -- emergency acct and"
+                            + " not supported in this country: " + country);
+                    return false;
+                }
+                
+                return true;
+            }
+
             boolean hasVoiceAvailability = isImsVoiceAvailable();
 
             boolean isRttSupported = PhoneGlobals.getInstance().phoneMgr
                     .isRttEnabled(mPhone.getSubId());
 
             boolean isRoaming = mTelephonyManager.isNetworkRoaming(mPhone.getSubId());
+            boolean isOnWfc = mPhone.getImsRegistrationTech()
+                    == ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN;
 
-            return hasVoiceAvailability && isRttSupported && !isRoaming;
+            boolean shouldDisableBecauseRoamingOffWfc = isRoaming && !isOnWfc;
+            Log.i(this, "isRttCurrentlySupported -- regular acct,"
+                    + " hasVoiceAvailability: " + hasVoiceAvailability + "\n"
+                    + " isRttSupported: " + isRttSupported + "\n"
+                    + " isRoaming: " + isRoaming + "\n"
+                    + " isOnWfc: " + isOnWfc + "\n");
+
+            return hasVoiceAvailability && isRttSupported && !shouldDisableBecauseRoamingOffWfc;
         }
 
         /**
@@ -802,10 +965,8 @@
             if (Intent.ACTION_USER_SWITCHED.equals(intent.getAction())) {
                 Log.i(this, "User changed, re-registering phone accounts.");
 
-                int userHandleId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0);
-                UserHandle currentUserHandle = new UserHandle(userHandleId);
-                mIsPrimaryUser = UserManager.get(mContext).getPrimaryUser().getUserHandle()
-                        .equals(currentUserHandle);
+                UserHandle currentUser = intent.getParcelableExtra(Intent.EXTRA_USER);
+                mIsPrimaryUser = currentUser == null ? true : currentUser.isSystem();
 
                 // Any time the user changes, re-register the accounts.
                 tearDownAccounts();
@@ -820,6 +981,15 @@
         }
     };
 
+    private BroadcastReceiver mLocaleChangeReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            Log.i(this, "Locale change; re-registering phone accounts.");
+            tearDownAccounts();
+            setupAccounts();
+        }
+    };
+
     private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
         @Override
         public void onServiceStateChanged(ServiceState serviceState) {
@@ -851,6 +1021,7 @@
     private static TelecomAccountRegistry sInstance;
     private final Context mContext;
     private final TelecomManager mTelecomManager;
+    private final android.telephony.ims.ImsManager mImsManager;
     private final TelephonyManager mTelephonyManager;
     private final SubscriptionManager mSubscriptionManager;
     private List<AccountEntry> mAccounts = new LinkedList<AccountEntry>();
@@ -865,7 +1036,8 @@
 
     TelecomAccountRegistry(Context context) {
         mContext = context;
-        mTelecomManager = TelecomManager.from(context);
+        mTelecomManager = context.getSystemService(TelecomManager.class);
+        mImsManager = context.getSystemService(android.telephony.ims.ImsManager.class);
         mTelephonyManager = TelephonyManager.from(context);
         mSubscriptionManager = SubscriptionManager.from(context);
     }
@@ -1039,6 +1211,21 @@
         return null;
     }
 
+    public void refreshAdhocConference(boolean isEnableAdhocConf) {
+        synchronized (mAccountsLock) {
+            Log.v(this, "refreshAdhocConference isEnable = " + isEnableAdhocConf);
+            for (AccountEntry entry : mAccounts) {
+                boolean hasAdhocConfCapability = entry.mAccount.hasCapabilities(
+                        PhoneAccount.CAPABILITY_ADHOC_CONFERENCE_CALLING);
+                if (!isEnableAdhocConf && hasAdhocConfCapability) {
+                    entry.updateAdhocConfCapability(isEnableAdhocConf);
+                } else if (isEnableAdhocConf && !hasAdhocConfCapability) {
+                    entry.updateAdhocConfCapability(entry.mPhone.isImsRegistered());
+                }
+            }
+        }
+    }
+
     /**
      * Returns whethere a the subscription associated with a {@link PhoneAccountHandle} is using a
      * sim call manager.
@@ -1083,6 +1270,16 @@
         filter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
         mContext.registerReceiver(mReceiver, filter);
 
+        //We also need to listen for locale changes
+        //(e.g. system language changed -> SIM card name changed)
+        IntentFilter localeChangeFilter = new IntentFilter(Intent.ACTION_LOCALE_CHANGED);
+        localeChangeFilter.addAction(TelephonyManager.ACTION_NETWORK_COUNTRY_CHANGED);
+        mContext.registerReceiver(mLocaleChangeReceiver, localeChangeFilter);
+
+        registerContentObservers();
+    }
+
+    private void registerContentObservers() {
         // Listen to the RTT system setting so that we update it when the user flips it.
         ContentObserver rttUiSettingObserver = new ContentObserver(
                 new Handler(Looper.getMainLooper())) {
@@ -1099,6 +1296,23 @@
         Uri rttSettingUri = Settings.Secure.getUriFor(Settings.Secure.RTT_CALLING_MODE);
         mContext.getContentResolver().registerContentObserver(
                 rttSettingUri, false, rttUiSettingObserver);
+
+        // Listen to the changes to the user's Contacts Discovery Setting.
+        ContentObserver contactDiscoveryObserver = new ContentObserver(
+                new Handler(Looper.getMainLooper())) {
+            @Override
+            public void onChange(boolean selfChange) {
+                synchronized (mAccountsLock) {
+                    for (AccountEntry account : mAccounts) {
+                        account.updateVideoPresenceCapability();
+                    }
+                }
+            }
+        };
+        Uri contactDiscUri = Uri.withAppendedPath(Telephony.SimInfo.CONTENT_URI,
+                Telephony.SimInfo.IMS_RCS_UCE_ENABLED);
+        mContext.getContentResolver().registerContentObserver(
+                contactDiscUri, true /*notifyForDescendants*/, contactDiscoveryObserver);
     }
 
     /**
@@ -1132,7 +1346,7 @@
                 R.bool.config_emergency_account_emergency_calls_only);
         List<PhoneAccountHandle> accountHandles = emergencyCallsOnlyEmergencyAccount
                 ? mTelecomManager.getAllPhoneAccountHandles()
-                : mTelecomManager.getCallCapablePhoneAccounts(true /* includeDisabled */);
+                : mTelecomManager.getCallCapablePhoneAccounts();
 
         for (PhoneAccountHandle handle : accountHandles) {
             if (telephonyComponentName.equals(handle.getComponentName()) &&
@@ -1200,30 +1414,6 @@
 
         // Clean up any PhoneAccounts that are no longer relevant
         cleanupPhoneAccounts();
-
-        // At some point, the phone account ID was switched from the subId to the iccId.
-        // If there is a default account, check if this is the case, and upgrade the default account
-        // from using the subId to iccId if so.
-        PhoneAccountHandle defaultPhoneAccount =
-                mTelecomManager.getUserSelectedOutgoingPhoneAccount();
-        ComponentName telephonyComponentName =
-                new ComponentName(mContext, TelephonyConnectionService.class);
-
-        if (defaultPhoneAccount != null &&
-                telephonyComponentName.equals(defaultPhoneAccount.getComponentName()) &&
-                !hasAccountEntryForPhoneAccount(defaultPhoneAccount)) {
-
-            String phoneAccountId = defaultPhoneAccount.getId();
-            if (!TextUtils.isEmpty(phoneAccountId) && TextUtils.isDigitsOnly(phoneAccountId)) {
-                PhoneAccountHandle upgradedPhoneAccount =
-                        PhoneUtils.makePstnPhoneAccountHandle(
-                                PhoneGlobals.getPhone(Integer.parseInt(phoneAccountId)));
-
-                if (hasAccountEntryForPhoneAccount(upgradedPhoneAccount)) {
-                    mTelecomManager.setUserSelectedOutgoingPhoneAccount(upgradedPhoneAccount);
-                }
-            }
-        }
     }
 
     private void tearDownAccounts() {
diff --git a/src/com/android/services/telephony/TelephonyConference.java b/src/com/android/services/telephony/TelephonyConference.java
index c66d6f2..7e4693f 100644
--- a/src/com/android/services/telephony/TelephonyConference.java
+++ b/src/com/android/services/telephony/TelephonyConference.java
@@ -16,7 +16,7 @@
 
 package com.android.services.telephony;
 
-import android.telecom.Conference;
+import android.net.Uri;
 import android.telecom.Connection;
 import android.telecom.PhoneAccountHandle;
 
@@ -30,7 +30,7 @@
  * TelephonyConnection-based conference call for GSM conferences and IMS conferences (which may
  * be either GSM-based or CDMA-based).
  */
-public class TelephonyConference extends Conference implements Holdable {
+public class TelephonyConference extends TelephonyConferenceBase implements Holdable {
 
     private boolean mIsHoldable;
 
@@ -94,6 +94,22 @@
     }
 
     @Override
+    public void onAnswer(int videoState) {
+        Log.e(this, new Exception(), "Answer not supported for GSM conference call.");
+    }
+
+    @Override
+    public void onReject() {
+        Log.e(this, new Exception(), "Reject not supported for GSM conference call.");
+    }
+
+    @Override
+    public void onAddConferenceParticipants(List<Uri> participants) {
+        Log.e(this, new Exception(), "Adding Conference Participants not supported " +
+                " for GSM conference call.");
+    }
+
+    @Override
     public void onMerge(Connection connection) {
         try {
             Phone phone = ((TelephonyConnection) connection).getPhone();
diff --git a/src/com/android/services/telephony/TelephonyConferenceBase.java b/src/com/android/services/telephony/TelephonyConferenceBase.java
new file mode 100644
index 0000000..1c81fb9
--- /dev/null
+++ b/src/com/android/services/telephony/TelephonyConferenceBase.java
@@ -0,0 +1,255 @@
+/*
+ * Copyright (C) 2019 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.services.telephony;
+
+import android.annotation.NonNull;
+import android.os.Bundle;
+import android.telecom.Conference;
+import android.telecom.Connection;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+import android.telephony.ServiceState;
+
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Base class for the various Telephony {@link Conference} implementations ({@link CdmaConference},
+ * {@link TelephonyConference}, and {@link ImsConference}).  Adds some common listener code which
+ * all of these conferences use.
+ */
+public class TelephonyConferenceBase extends Conference {
+    private static final String TAG = "TelephonyConferenceBase";
+
+    /**
+     * Listener for conference events.
+     */
+    public abstract static class TelephonyConferenceListener {
+        /**
+         * Listener called when a connection is added or removed from a conference.
+         * @param connection The connection.
+         */
+        public void onConferenceMembershipChanged(Connection connection) {}
+
+        /**
+         * Listener called when there conference call state changes.
+         * @param conference The conference.
+         * @param oldState previous state of conference call.
+         * @param newState new state of conference call.
+         */
+        public void onStateChanged(Conference conference, int oldState, int newState) {}
+
+        /**
+         * Listener called when a conference is destroyed.
+         * @param conference The conference.
+         */
+        public void onDestroyed(Conference conference) {}
+    }
+
+    private final Set<TelephonyConferenceListener> mListeners = Collections.newSetFromMap(
+            new ConcurrentHashMap<>(8, 0.9f, 1));
+
+    /**
+     * Adds a listener to this conference.
+     * @param listener The listener.
+     */
+    public void addTelephonyConferenceListener(@NonNull TelephonyConferenceListener listener) {
+        mListeners.add(listener);
+    }
+
+    /**
+     * Removes a listener from this conference.
+     * @param listener The listener.
+     */
+    public void removeTelephonyConferenceListener(@NonNull TelephonyConferenceListener listener) {
+        mListeners.remove(listener);
+    }
+
+    /**
+     * Constructs a new Conference with a mandatory {@link PhoneAccountHandle}
+     *
+     * @param phoneAccount The {@code PhoneAccountHandle} associated with the conference.
+     */
+    public TelephonyConferenceBase(PhoneAccountHandle phoneAccount) {
+        super(phoneAccount);
+    }
+
+    /**
+     * Adds a connection to this {@link Conference}.
+     * <p>
+     * Should be used in place of {@link Conference#addConnection(Connection)} to ensure
+     * {@link TelephonyConferenceListener}s are informed of the change.
+     *
+     * @param connection The connection.
+     */
+    public void addTelephonyConnection(@NonNull Connection connection) {
+        addConnection(connection);
+        notifyConferenceMembershipChanged(connection);
+    }
+
+    /**
+     * Removes a {@link Connection} from this {@link Conference}.
+     * <p>
+     * Should be used instead of {@link Conference#removeConnection(Connection)} to ensure
+     * {@link TelephonyConferenceListener}s are notified of the change.
+     *
+     * @param connection The connection.
+     */
+    public void removeTelephonyConnection(@NonNull Connection connection) {
+        removeConnection(connection);
+        notifyConferenceMembershipChanged(connection);
+    }
+
+    /**
+     * Destroys the current {@link Conference} and notifies {@link TelephonyConferenceListener}s of
+     * the change to conference membership.
+     * <p>
+     * Should be used instead of {@link Conference#destroy()} to ensure telephony listeners are
+     * notified.
+     */
+    public void destroyTelephonyConference() {
+        // Conference#removeConnection modifies the list of participants, so we need to use an
+        // iterator here to ensure all participants are removed.
+        // Technically Conference#destroy does this, but we want to notify listeners of the state
+        // change so we'll do it here first.
+        Iterator<Connection> connectionIterator = getConnections().iterator();
+        while (connectionIterator.hasNext()) {
+            removeTelephonyConnection(connectionIterator.next());
+        }
+        destroy();
+        notifyDestroyed();
+    }
+
+    /**
+     * Sets state to be on hold.
+     */
+     public final void setConferenceOnHold() {
+         int oldState = getState();
+         if (oldState == Connection.STATE_HOLDING) {
+             return;
+         }
+         setOnHold();
+         notifyStateChanged(oldState, getState());
+     }
+
+     /**
+      * Sets state to be dialing.
+      */
+     public final void setConferenceOnDialing() {
+         int oldState = getState();
+         if (oldState == Connection.STATE_DIALING) {
+             return;
+         }
+         setDialing();
+         notifyStateChanged(oldState, getState());
+     }
+
+     /**
+      * Sets state to be ringing.
+      */
+     public final void setConferenceOnRinging() {
+         int oldState = getState();
+         if (oldState == Connection.STATE_RINGING) {
+             return;
+         }
+         setRinging();
+         notifyStateChanged(oldState, getState());
+     }
+
+     /**
+      * Sets state to be active.
+      */
+     public final void setConferenceOnActive() {
+         int oldState = getState();
+         if (oldState == Connection.STATE_ACTIVE) {
+             return;
+         }
+         setActive();
+         notifyStateChanged(oldState, getState());
+     }
+
+    /**
+     * Updates RIL voice radio technology used for current conference after its creation.
+     */
+    public void updateCallRadioTechAfterCreation() {
+        final Connection primaryConnection = getPrimaryConnection();
+        if (primaryConnection != null && primaryConnection instanceof TelephonyConnection) {
+            TelephonyConnection telephonyConnection = (TelephonyConnection) primaryConnection;
+            Bundle newExtras = new Bundle();
+            newExtras.putInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE,
+                    ServiceState.rilRadioTechnologyToNetworkType(
+                            telephonyConnection.getCallRadioTech()));
+            putExtras(newExtras);
+        } else {
+            Log.w(TAG, "No primary connection found while updateCallRadioTechAfterCreation");
+        }
+    }
+
+    /**
+     * Removes the specified capability from the set of capabilities of this {@code Conference}.
+     *
+     * @param capability The capability to remove from the set.
+     */
+    public void removeCapability(int capability) {
+        int newCapabilities = getConnectionCapabilities();
+        newCapabilities &= ~capability;
+
+        setConnectionCapabilities(newCapabilities);
+    }
+
+    /**
+     * Adds the specified capability to the set of capabilities of this {@code Conference}.
+     *
+     * @param capability The capability to add to the set.
+     */
+    public void addCapability(int capability) {
+        int newCapabilities = getConnectionCapabilities();
+        newCapabilities |= capability;
+
+        setConnectionCapabilities(newCapabilities);
+    }
+
+    /**
+     * Notifies {@link TelephonyConferenceListener}s of a connection being added or removed from
+     * the conference.
+     * @param connection The conference.
+     */
+    private void notifyConferenceMembershipChanged(@NonNull Connection connection) {
+        for (TelephonyConferenceListener listener : mListeners) {
+            listener.onConferenceMembershipChanged(connection);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConferenceListener}s of a conference being destroyed
+     */
+    private void notifyDestroyed() {
+        for (TelephonyConferenceListener listener : mListeners) {
+            listener.onDestroyed(this);
+        }
+    }
+
+    private void notifyStateChanged(int oldState, int newState) {
+        if (oldState != newState) {
+            for (TelephonyConferenceListener listener : mListeners) {
+                listener.onStateChanged(this, oldState, newState);
+            }
+        }
+    }
+}
diff --git a/src/com/android/services/telephony/TelephonyConferenceController.java b/src/com/android/services/telephony/TelephonyConferenceController.java
index e9eef46..95281b3 100644
--- a/src/com/android/services/telephony/TelephonyConferenceController.java
+++ b/src/com/android/services/telephony/TelephonyConferenceController.java
@@ -41,25 +41,26 @@
 final class TelephonyConferenceController {
     private static final int TELEPHONY_CONFERENCE_MAX_SIZE = 5;
 
-    private final Connection.Listener mConnectionListener = new Connection.Listener() {
-        @Override
-        public void onStateChanged(Connection c, int state) {
-            Log.v(this, "onStateChange triggered in Conf Controller : connection = "+ c
-                 + " state = " + state);
-            recalculate();
-        }
+    private final TelephonyConnection.TelephonyConnectionListener mTelephonyConnectionListener =
+            new TelephonyConnection.TelephonyConnectionListener() {
+                @Override
+                public void onStateChanged(Connection c, int state) {
+                    Log.v(this, "onStateChange triggered in Conf Controller : connection = " + c
+                            + " state = " + state);
+                    recalculate();
+                }
 
-        /** ${inheritDoc} */
-        @Override
-        public void onDisconnected(Connection c, DisconnectCause disconnectCause) {
-            recalculate();
-        }
+                @Override
+                public void onDisconnected(Connection c, DisconnectCause disconnectCause) {
+                    recalculate();
+                }
 
-        @Override
-        public void onDestroyed(Connection connection) {
-            remove(connection);
-        }
-    };
+                @Override
+                public void onDestroyed(Connection connection) {
+                    // Only TelephonyConnections are added.
+                    remove((TelephonyConnection) connection);
+                }
+            };
 
     /** The known connections. */
     private final List<TelephonyConnection> mTelephonyConnections = new ArrayList<>();
@@ -85,18 +86,18 @@
             return;
         }
         mTelephonyConnections.add(connection);
-        connection.addConnectionListener(mConnectionListener);
+        connection.addTelephonyConnectionListener(mTelephonyConnectionListener);
         recalculate();
     }
 
-    void remove(Connection connection) {
+    void remove(TelephonyConnection connection) {
         if (!mTelephonyConnections.contains(connection)) {
             // Debug only since TelephonyConnectionService tries to clean up the connections tracked
             // when the original connection changes.  It does this proactively.
             Log.d(this, "remove - connection not tracked; connection=%s", connection);
             return;
         }
-        connection.removeConnectionListener(mConnectionListener);
+        connection.removeTelephonyConnectionListener(mTelephonyConnectionListener);
         mTelephonyConnections.remove(connection);
         recalculate();
     }
@@ -219,7 +220,7 @@
             // No more connections are conferenced, destroy any existing conference.
             if (mTelephonyConference != null) {
                 Log.d(this, "with a conference to destroy!");
-                mTelephonyConference.destroy();
+                mTelephonyConference.destroyTelephonyConference();
                 mTelephonyConference = null;
             }
         } else {
@@ -229,7 +230,7 @@
                 for (Connection connection : existingConnections) {
                     if (connection instanceof TelephonyConnection &&
                             !conferencedConnections.contains(connection)) {
-                        mTelephonyConference.removeConnection(connection);
+                        mTelephonyConference.removeTelephonyConnection(connection);
                     }
                 }
                 if (allConnInService) {
@@ -237,7 +238,7 @@
                     // Add any new ones
                     for (Connection connection : conferencedConnections) {
                         if (!existingConnections.contains(connection)) {
-                            mTelephonyConference.addConnection(connection);
+                            mTelephonyConference.addTelephonyConnection(connection);
                         }
                     }
                 } else {
@@ -262,7 +263,7 @@
                     for (Connection connection : conferencedConnections) {
                         Log.d(this, "Adding a connection to a conference call: %s %s",
                                 mTelephonyConference, connection);
-                        mTelephonyConference.addConnection(connection);
+                        mTelephonyConference.addTelephonyConnection(connection);
                     }
                     mTelephonyConference.updateCallRadioTechAfterCreation();
                     mConnectionService.addConference(mTelephonyConference);
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
old mode 100644
new mode 100755
index 38672a8..fd9de4f
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -16,7 +16,10 @@
 
 package com.android.services.telephony;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.content.Context;
+import android.content.res.Resources;
 import android.graphics.drawable.Icon;
 import android.net.Uri;
 import android.os.AsyncResult;
@@ -26,8 +29,9 @@
 import android.os.Message;
 import android.os.PersistableBundle;
 import android.telecom.CallAudioState;
-import android.telecom.ConferenceParticipant;
+import android.telecom.Conference;
 import android.telecom.Connection;
+import android.telecom.ConnectionService;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.StatusHints;
@@ -37,12 +41,19 @@
 import android.telephony.DisconnectCause;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.ServiceState;
+import android.telephony.ServiceState.RilRadioTechnology;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.telephony.ims.ImsCallProfile;
+import android.telephony.ims.ImsStreamMediaProfile;
 import android.text.TextUtils;
 import android.util.Pair;
 
 import com.android.ims.ImsCall;
+import com.android.ims.ImsException;
+import com.android.ims.internal.ConferenceParticipant;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.os.SomeArgs;
 import com.android.internal.telephony.Call;
 import com.android.internal.telephony.CallFailCause;
 import com.android.internal.telephony.CallStateException;
@@ -52,12 +63,14 @@
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.gsm.SuppServiceNotification;
 import com.android.internal.telephony.imsphone.ImsPhone;
+import com.android.internal.telephony.imsphone.ImsPhoneCall;
 import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
 import com.android.internal.telephony.imsphone.ImsPhoneConnection;
 import com.android.phone.ImsUtil;
 import com.android.phone.PhoneGlobals;
 import com.android.phone.PhoneUtils;
 import com.android.phone.R;
+import com.android.telephony.Rlog;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -73,6 +86,8 @@
  * Base class for CDMA and GSM connections.
  */
 abstract class TelephonyConnection extends Connection implements Holdable {
+    private static final String LOG_TAG = "TelephonyConnection";
+
     private static final int MSG_PRECISE_CALL_STATE_CHANGED = 1;
     private static final int MSG_RINGBACK_TONE = 2;
     private static final int MSG_HANDOVER_STATE_CHANGED = 3;
@@ -98,6 +113,12 @@
     private static final int MSG_CDMA_VOICE_PRIVACY_OFF = 16;
     private static final int MSG_HANGUP = 17;
     private static final int MSG_SET_CALL_RADIO_TECH = 18;
+    private static final int MSG_ON_CONNECTION_EVENT = 19;
+    private static final int MSG_REDIAL_CONNECTION_CHANGED = 20;
+    private static final int MSG_REJECT = 21;
+
+    private List<Uri> mParticipants;
+    private boolean mIsAdhocConferenceCall;
 
     private final Handler mHandler = new Handler(Looper.getMainLooper()) {
         @Override
@@ -108,15 +129,25 @@
                     updateState();
                     break;
                 case MSG_HANDOVER_STATE_CHANGED:
-                    Log.v(TelephonyConnection.this, "MSG_HANDOVER_STATE_CHANGED");
+                case MSG_REDIAL_CONNECTION_CHANGED:
+                    String what = (msg.what == MSG_HANDOVER_STATE_CHANGED)
+                            ? "MSG_HANDOVER_STATE_CHANGED" : "MSG_REDIAL_CONNECTION_CHANGED";
+                    Log.v(TelephonyConnection.this, what);
                     AsyncResult ar = (AsyncResult) msg.obj;
                     com.android.internal.telephony.Connection connection =
                          (com.android.internal.telephony.Connection) ar.result;
+                    if (connection == null) {
+                        setDisconnected(DisconnectCauseUtil
+                                .toTelecomDisconnectCause(DisconnectCause.OUT_OF_NETWORK,
+                                        "handover failure, no connection"));
+                        close();
+                        break;
+                    }
                     if (mOriginalConnection != null) {
                         if (connection != null &&
                             ((connection.getAddress() != null &&
                             mOriginalConnection.getAddress() != null &&
-                            mOriginalConnection.getAddress().contains(connection.getAddress())) ||
+                            mOriginalConnection.getAddress().equals(connection.getAddress())) ||
                             connection.getState() == mOriginalConnection.getStateBeforeHandover())) {
                             Log.d(TelephonyConnection.this,
                                     "SettingOriginalConnection " + mOriginalConnection.toString()
@@ -126,7 +157,7 @@
                         }
                     } else {
                         Log.w(TelephonyConnection.this,
-                                "MSG_HANDOVER_STATE_CHANGED: mOriginalConnection==null - invalid state (not cleaned up)");
+                                what + ": mOriginalConnection==null - invalid state (not cleaned up)");
                     }
                     break;
                 case MSG_RINGBACK_TONE:
@@ -138,7 +169,9 @@
                                 "not foreground connection, skipping");
                         return;
                     }
-                    setRingbackRequested((Boolean) ((AsyncResult) msg.obj).result);
+                    boolean ringback = (Boolean) ((AsyncResult) msg.obj).result;
+                    setRingbackRequested(ringback);
+                    notifyRingbackRequested(ringback);
                     break;
                 case MSG_DISCONNECT:
                     updateState();
@@ -171,19 +204,20 @@
 
                 case MSG_SET_VIDEO_STATE:
                     int videoState = (int) msg.obj;
-                    setVideoState(videoState);
+                    setTelephonyVideoState(videoState);
 
                     // A change to the video state of the call can influence whether or not it
                     // can be part of a conference, whether another call can be added, and
                     // whether the call should have the HD audio property set.
                     refreshConferenceSupported();
                     refreshDisableAddCall();
+                    refreshHoldSupported();
                     updateConnectionProperties();
                     break;
 
                 case MSG_SET_VIDEO_PROVIDER:
                     VideoProvider videoProvider = (VideoProvider) msg.obj;
-                    setVideoProvider(videoProvider);
+                    setTelephonyVideoProvider(videoProvider);
                     break;
 
                 case MSG_SET_AUDIO_QUALITY:
@@ -223,9 +257,9 @@
                         // If starting the hold tone, send a connection event to Telecom which will
                         // cause it to play the on hold tone.
                         if (playTone) {
-                            sendConnectionEvent(EVENT_ON_HOLD_TONE_START, null);
+                            sendTelephonyConnectionEvent(EVENT_ON_HOLD_TONE_START, null);
                         } else {
-                            sendConnectionEvent(EVENT_ON_HOLD_TONE_END, null);
+                            sendTelephonyConnectionEvent(EVENT_ON_HOLD_TONE_END, null);
                         }
                     }
                     break;
@@ -242,6 +276,10 @@
                     int cause = (int) msg.obj;
                     hangup(cause);
                     break;
+                case MSG_REJECT:
+                    int rejectReason = (int) msg.obj;
+                    reject(rejectReason);
+                    break;
 
                 case MSG_SET_CALL_RADIO_TECH:
                     int vrat = (int) msg.obj;
@@ -267,6 +305,15 @@
                         refreshDisableAddCall();
                     }
                     break;
+                case MSG_ON_CONNECTION_EVENT:
+                    SomeArgs args = (SomeArgs) msg.obj;
+                    try {
+                        sendTelephonyConnectionEvent((String) args.arg1, (Bundle) args.arg2);
+
+                    } finally {
+                        args.recycle();
+                    }
+                    break;
             }
         }
     };
@@ -280,7 +327,7 @@
                 ssn.code);
         if (ssn.notificationType == SuppServiceNotification.NOTIFICATION_TYPE_CODE_1
                 && ssn.code == SuppServiceNotification.CODE_1_CALL_FORWARDED) {
-            sendConnectionEvent(TelephonyManager.EVENT_CALL_FORWARDED, null);
+            sendTelephonyConnectionEvent(TelephonyManager.EVENT_CALL_FORWARDED, null);
         }
         sendSuppServiceNotificationEvent(ssn.notificationType, ssn.code);
     }
@@ -298,7 +345,8 @@
         extras.putInt(TelephonyManager.EXTRA_NOTIFICATION_CODE, code);
         extras.putCharSequence(TelephonyManager.EXTRA_NOTIFICATION_MESSAGE,
                 getSuppServiceMessage(type, code));
-        sendConnectionEvent(TelephonyManager.EVENT_SUPPLEMENTARY_SERVICE_NOTIFICATION, extras);
+        sendTelephonyConnectionEvent(TelephonyManager.EVENT_SUPPLEMENTARY_SERVICE_NOTIFICATION,
+                extras);
     }
 
     /**
@@ -374,12 +422,26 @@
             }
         }
         if (messageId != -1 && getPhone() != null && getPhone().getContext() != null) {
-            return getPhone().getContext().getText(messageId);
+            return getResourceText(messageId);
         } else {
             return null;
         }
     }
 
+    @VisibleForTesting
+    public CharSequence getResourceText(int id) {
+        Resources resources = SubscriptionManager.getResourcesForSubId(getPhone().getContext(),
+                getPhone().getSubId());
+        return resources.getText(id);
+    }
+
+    @VisibleForTesting
+    public String getResourceString(int id) {
+        Resources resources = SubscriptionManager.getResourcesForSubId(getPhone().getContext(),
+                getPhone().getSubId());
+        return resources.getString(id);
+    }
+
     /**
      * @return {@code true} if carrier video conferencing is supported, {@code false} otherwise.
      */
@@ -395,6 +457,25 @@
     public abstract static class TelephonyConnectionListener {
         public void onOriginalConnectionConfigured(TelephonyConnection c) {}
         public void onOriginalConnectionRetry(TelephonyConnection c, boolean isPermanentFailure) {}
+        public void onConferenceParticipantsChanged(Connection c,
+                List<ConferenceParticipant> participants) {}
+        public void onConferenceStarted() {}
+        public void onConferenceSupportedChanged(Connection c, boolean isConferenceSupported) {}
+
+        public void onConnectionCapabilitiesChanged(Connection c, int connectionCapabilities) {}
+        public void onConnectionEvent(Connection c, String event, Bundle extras) {}
+        public void onConnectionPropertiesChanged(Connection c, int connectionProperties) {}
+        public void onExtrasChanged(Connection c, Bundle extras) {}
+        public void onExtrasRemoved(Connection c, List<String> keys) {}
+        public void onStateChanged(android.telecom.Connection c, int state) {}
+        public void onStatusHintsChanged(Connection c, StatusHints statusHints) {}
+        public void onDestroyed(Connection c) {}
+        public void onDisconnected(android.telecom.Connection c,
+                android.telecom.DisconnectCause disconnectCause) {}
+        public void onVideoProviderChanged(android.telecom.Connection c,
+                Connection.VideoProvider videoProvider) {}
+        public void onVideoStateChanged(android.telecom.Connection c, int videoState) {}
+        public void onRingbackRequested(Connection c, boolean ringback) {}
     }
 
     private final PostDialListener mPostDialListener = new PostDialListener() {
@@ -454,7 +535,7 @@
          * @param vrat the RIL Voice Radio Technology used for current connection.
          */
         @Override
-        public void onCallRadioTechChanged(@ServiceState.RilRadioTechnology int vrat) {
+        public void onCallRadioTechChanged(@RilRadioTechnology int vrat) {
             mHandler.obtainMessage(MSG_SET_CALL_RADIO_TECH, vrat).sendToTarget();
         }
 
@@ -528,7 +609,7 @@
 
             // Inform the InCallService of the fact that the call pull failed (it may choose to
             // display a message informing the user of the pull failure).
-            sendConnectionEvent(Connection.EVENT_CALL_PULL_FAILED, null);
+            sendTelephonyConnectionEvent(Connection.EVENT_CALL_PULL_FAILED, null);
 
             // Swap the ImsPhoneConnection we used to do the pull for the ImsExternalConnection
             // which originally represented the call.
@@ -543,7 +624,7 @@
          */
         @Override
         public void onHandoverToWifiFailed() {
-            sendConnectionEvent(TelephonyManager.EVENT_HANDOVER_TO_WIFI_FAILED, null);
+            sendTelephonyConnectionEvent(TelephonyManager.EVENT_HANDOVER_TO_WIFI_FAILED, null);
         }
 
         /**
@@ -554,7 +635,10 @@
          */
         @Override
         public void onConnectionEvent(String event, Bundle extras) {
-            sendConnectionEvent(event, extras);
+            SomeArgs args = SomeArgs.obtain();
+            args.arg1 = event;
+            args.arg2 = extras;
+            mHandler.obtainMessage(MSG_ON_CONNECTION_EVENT, args).sendToTarget();
         }
 
         @Override
@@ -594,6 +678,7 @@
         @Override
         public void onRttTerminated() {
             updateConnectionProperties();
+            refreshConferenceSupported();
             sendRttSessionRemotelyTerminated();
         }
 
@@ -609,6 +694,7 @@
         }
     };
 
+    private TelephonyConnectionService mTelephonyConnectionService;
     protected com.android.internal.telephony.Connection mOriginalConnection;
     private Call.State mConnectionState = Call.State.IDLE;
     private Bundle mOriginalConnectionExtras = new Bundle();
@@ -710,6 +796,11 @@
     private boolean mShowPreciseFailedCause;
 
     /**
+     * Provides a DisconnectCause associated with a hang up request.
+     */
+    private int mHangupDisconnectCause = DisconnectCause.NOT_VALID;
+
+    /**
      * Listeners to our TelephonyConnection specific callbacks
      */
     private final Set<TelephonyConnectionListener> mTelephonyListeners = Collections.newSetFromMap(
@@ -781,6 +872,11 @@
     }
 
     @Override
+    public void onAddConferenceParticipants(List<Uri> participants) {
+        performAddConferenceParticipants(participants);
+    }
+
+    @Override
     public void onAbort() {
         Log.v(this, "onAbort");
         mHandler.obtainMessage(MSG_HANGUP, android.telephony.DisconnectCause.LOCAL).sendToTarget();
@@ -798,14 +894,7 @@
 
     @Override
     public void onAnswer(int videoState) {
-        Log.v(this, "onAnswer");
-        if (isValidRingingCall() && getPhone() != null) {
-            try {
-                getPhone().acceptCall(videoState);
-            } catch (CallStateException e) {
-                Log.e(this, e, "Failed to accept call.");
-            }
-        }
+        performAnswer(videoState);
     }
 
     @Override
@@ -849,15 +938,76 @@
 
     @Override
     public void onReject() {
-        Log.v(this, "onReject");
+        performReject(android.telecom.Call.REJECT_REASON_DECLINED);
+    }
+
+    @Override
+    public void onReject(@android.telecom.Call.RejectReason int rejectReason) {
+        performReject(rejectReason);
+    }
+
+    public void performReject(int rejectReason) {
+        Log.v(this, "performReject");
         if (isValidRingingCall()) {
-            mHandler.obtainMessage(MSG_HANGUP, android.telephony.DisconnectCause.INCOMING_REJECTED)
+            mHandler.obtainMessage(MSG_REJECT, rejectReason)
                     .sendToTarget();
         }
         super.onReject();
     }
 
     @Override
+    public void onTransfer(Uri number, boolean isConfirmationRequired) {
+        Log.v(this, "onTransfer");
+        if (mOriginalConnection != null) {
+            if (number == null) {
+                Log.w(this, "call transfer uri is null");
+                return;
+            }
+            String scheme = number.getScheme();
+            String transferNumber = "";
+            String uriString = number.getSchemeSpecificPart();
+            if (!PhoneAccount.SCHEME_VOICEMAIL.equals(scheme)) {
+                if (!PhoneAccount.SCHEME_TEL.equals(scheme)) {
+                    Log.w(this, "onTransfer, number scheme is not of type tel instead: "
+                            + scheme);
+                    return;
+                }
+                if (PhoneNumberUtils.isUriNumber(uriString)) {
+                    Log.w(this, "Invalid transfer address. Not a legal PSTN number.");
+                    return;
+                }
+                transferNumber = PhoneNumberUtils.convertAndStrip(uriString);
+                if (TextUtils.isEmpty(transferNumber)) {
+                    Log.w(this, "Empty transfer number obtained from uri");
+                    return;
+                }
+            } else {
+                Log.w(this, "Cannot transfer to voicemail uri");
+                return;
+            }
+
+            try {
+                mOriginalConnection.transfer(transferNumber, isConfirmationRequired);
+            } catch (CallStateException e) {
+                Log.e(this, e, "Failed to transfer call.");
+            }
+        }
+    }
+
+    @Override
+    public void onTransfer(Connection otherConnection) {
+        Log.v(this, "onConsultativeTransfer");
+        if (mOriginalConnection != null && (otherConnection instanceof TelephonyConnection)) {
+            try {
+                mOriginalConnection.consultativeTransfer(
+                        ((TelephonyConnection) otherConnection).getOriginalConnection());
+            } catch (CallStateException e) {
+                Log.e(this, e, "Failed to transfer call.");
+            }
+        }
+    }
+
+    @Override
     public void onPostDialContinue(boolean proceed) {
         Log.v(this, "onPostDialContinue, proceed: " + proceed);
         if (mOriginalConnection != null) {
@@ -923,6 +1073,17 @@
         originalConnection.sendRttModifyResponse(textStream);
     }
 
+    public void performAnswer(int videoState) {
+        Log.v(this, "performAnswer");
+        if (isValidRingingCall() && getPhone() != null) {
+            try {
+                getPhone().acceptCall(videoState);
+            } catch (CallStateException e) {
+                Log.e(this, e, "Failed to accept call.");
+            }
+        }
+    }
+
     public void performHold() {
         Log.v(this, "performHold");
         // TODO: Can dialing calls be put on hold as well since they take up the
@@ -1018,6 +1179,29 @@
         }
     }
 
+    private String[] getAddConferenceParticipants(List<Uri> participants) {
+        String[] addConfParticipants = new String[participants.size()];
+        int i = 0;
+        for (Uri participant : participants) {
+           addConfParticipants[i] = participant.getSchemeSpecificPart();
+           i++;
+        }
+        return addConfParticipants;
+    }
+
+    public void performAddConferenceParticipants(List<Uri> participants) {
+        Log.v(this, "performAddConferenceParticipants");
+        if (mOriginalConnection.getCall() instanceof ImsPhoneCall) {
+            ImsPhoneCall imsPhoneCall = (ImsPhoneCall)mOriginalConnection.getCall();
+            try {
+                imsPhoneCall.getImsCall().inviteParticipants(
+                        getAddConferenceParticipants(participants));
+            } catch(ImsException e) {
+                Log.e(this, e, "failed to add conference participants");
+            }
+        }
+    }
+
     /**
      * Builds connection capabilities common to all TelephonyConnections. Namely, apply IMS-based
      * capabilities.
@@ -1052,8 +1236,15 @@
         newCapabilities = changeBitmask(newCapabilities, CAPABILITY_SUPPORT_DEFLECT,
                 isImsConnection() && canDeflectImsCalls());
 
+        newCapabilities = applyAddParticipantCapabilities(newCapabilities);
+        newCapabilities = changeBitmask(newCapabilities, CAPABILITY_TRANSFER_CONSULTATIVE,
+                isImsConnection() && canConsultativeTransfer());
+        newCapabilities = changeBitmask(newCapabilities, CAPABILITY_TRANSFER,
+                isImsConnection() && canTransferToNumber());
+
         if (getConnectionCapabilities() != newCapabilities) {
             setConnectionCapabilities(newCapabilities);
+            notifyConnectionCapabilitiesChanged(newCapabilities);
         }
     }
 
@@ -1083,17 +1274,24 @@
                 isExternalConnection());
         newProperties = changeBitmask(newProperties, PROPERTY_HAS_CDMA_VOICE_PRIVACY,
                 mIsCdmaVoicePrivacyEnabled);
-        newProperties = changeBitmask(newProperties, PROPERTY_ASSISTED_DIALING_USED,
+        newProperties = changeBitmask(newProperties, PROPERTY_ASSISTED_DIALING,
                 mIsUsingAssistedDialing);
         newProperties = changeBitmask(newProperties, PROPERTY_IS_RTT, isRtt());
         newProperties = changeBitmask(newProperties, PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL,
                 isNetworkIdentifiedEmergencyCall());
+        newProperties = changeBitmask(newProperties, PROPERTY_IS_ADHOC_CONFERENCE,
+                isAdhocConferenceCall());
 
         if (getConnectionProperties() != newProperties) {
-            setConnectionProperties(newProperties);
+            setTelephonyConnectionProperties(newProperties);
         }
     }
 
+    public void setTelephonyConnectionProperties(int newProperties) {
+        setConnectionProperties(newProperties);
+        notifyConnectionPropertiesChanged(newProperties);
+    }
+
     protected final void updateAddress() {
         updateConnectionCapabilities();
         updateConnectionProperties();
@@ -1145,7 +1343,8 @@
                && isShowingOriginalDialString()) {
             Log.i(this, "new original dial string is null, convert to: "
                    +  mOriginalConnection.getOrigDialString());
-            originalConnection.setConverted(mOriginalConnection.getOrigDialString());
+            originalConnection.restoreDialedNumberAfterConversion(
+                    mOriginalConnection.getOrigDialString());
         }
 
         clearOriginalConnection();
@@ -1156,6 +1355,8 @@
                 mHandler, MSG_PRECISE_CALL_STATE_CHANGED, null);
         getPhone().registerForHandoverStateChanged(
                 mHandler, MSG_HANDOVER_STATE_CHANGED, null);
+        getPhone().registerForRedialConnectionChanged(
+                mHandler, MSG_REDIAL_CONNECTION_CHANGED, null);
         getPhone().registerForRingbackTone(mHandler, MSG_RINGBACK_TONE, null);
         getPhone().registerForSuppServiceNotification(mHandler, MSG_SUPP_SERVICE_NOTIFY, null);
         getPhone().registerForOnHoldTone(mHandler, MSG_ON_HOLD_TONE, null);
@@ -1165,11 +1366,12 @@
         mOriginalConnection.addListener(mOriginalConnectionListener);
 
         // Set video state and capabilities
-        setVideoState(mOriginalConnection.getVideoState());
+        setTelephonyVideoState(mOriginalConnection.getVideoState());
         setOriginalConnectionCapabilities(mOriginalConnection.getConnectionCapabilities());
         setIsNetworkIdentifiedEmergencyCall(mOriginalConnection.isNetworkIdentifiedEmergencyCall());
+        setIsAdhocConferenceCall(mOriginalConnection.isAdhocConference());
         setAudioModeIsVoip(mOriginalConnection.getAudioModeIsVoip());
-        setVideoProvider(mOriginalConnection.getVideoProvider());
+        setTelephonyVideoProvider(mOriginalConnection.getVideoProvider());
         setAudioQuality(mOriginalConnection.getAudioQuality());
         setTechnologyTypeExtra();
 
@@ -1204,8 +1406,8 @@
         } else {
             extrasToRemove.add(Connection.EXTRA_DISABLE_ADD_CALL);
         }
-        putExtras(extrasToPut);
-        removeExtras(extrasToRemove);
+        putTelephonyExtras(extrasToPut);
+        removeTelephonyExtras(extrasToRemove);
 
         // updateState can set mOriginalConnection to null if its state is DISCONNECTED, so this
         // should be executed *after* the above setters have run.
@@ -1250,18 +1452,109 @@
      */
     private void setTechnologyTypeExtra() {
         if (getPhone() != null) {
-            putExtra(TelecomManager.EXTRA_CALL_TECHNOLOGY_TYPE, getPhone().getPhoneType());
+            Bundle newExtras = getExtras();
+            if (newExtras == null) {
+                newExtras = new Bundle();
+            }
+            newExtras.putInt(TelecomManager.EXTRA_CALL_TECHNOLOGY_TYPE, getPhone().getPhoneType());
+            putTelephonyExtras(newExtras);
         }
     }
 
+    private void refreshHoldSupported() {
+       if (mOriginalConnection == null) {
+           Log.w(this, "refreshHoldSupported org conn is null");
+           return;
+       }
+
+       if (!mOriginalConnection.shouldAllowHoldingVideoCall() && canHoldImsCalls() !=
+               ((getConnectionCapabilities() & (CAPABILITY_HOLD | CAPABILITY_SUPPORT_HOLD)) != 0)) {
+           updateConnectionCapabilities();
+       }
+    }
+
     private void refreshDisableAddCall() {
         if (shouldSetDisableAddCallExtra()) {
-            putExtra(Connection.EXTRA_DISABLE_ADD_CALL, true);
+            Bundle newExtras = getExtras();
+            if (newExtras == null) {
+                newExtras = new Bundle();
+            }
+            newExtras.putBoolean(Connection.EXTRA_DISABLE_ADD_CALL, true);
+            putTelephonyExtras(newExtras);
         } else {
             removeExtras(Connection.EXTRA_DISABLE_ADD_CALL);
         }
     }
 
+    private void refreshCodecType() {
+        Bundle newExtras = getExtras();
+        if (newExtras == null) {
+            newExtras = new Bundle();
+        }
+        int newCodecType;
+        if (isImsConnection()) {
+            newCodecType = transformCodec(getOriginalConnection().getAudioCodec());
+        } else {
+            // For SRVCC, report AUDIO_CODEC_NONE.
+            newCodecType = Connection.AUDIO_CODEC_NONE;
+        }
+        int oldCodecType = newExtras.getInt(Connection.EXTRA_AUDIO_CODEC,
+                Connection.AUDIO_CODEC_NONE);
+        if (newCodecType != oldCodecType) {
+            newExtras.putInt(Connection.EXTRA_AUDIO_CODEC, newCodecType);
+            putTelephonyExtras(newExtras);
+        }
+    }
+
+    private int transformCodec(int codec) {
+        switch (codec) {
+            case ImsStreamMediaProfile.AUDIO_QUALITY_NONE:
+                return Connection.AUDIO_CODEC_NONE;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_AMR:
+                return Connection.AUDIO_CODEC_AMR;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_AMR_WB:
+                return Connection.AUDIO_CODEC_AMR_WB;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_QCELP13K:
+                return Connection.AUDIO_CODEC_QCELP13K;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVRC:
+                return Connection.AUDIO_CODEC_EVRC;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVRC_B:
+                return Connection.AUDIO_CODEC_EVRC_B;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVRC_WB:
+                return Connection.AUDIO_CODEC_EVRC_WB;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVRC_NW:
+                return Connection.AUDIO_CODEC_EVRC_NW;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_GSM_EFR:
+                return Connection.AUDIO_CODEC_GSM_EFR;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_GSM_FR:
+                return Connection.AUDIO_CODEC_GSM_FR;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_GSM_HR:
+                return Connection.AUDIO_CODEC_GSM_HR;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_G711U:
+                return Connection.AUDIO_CODEC_G711U;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_G723:
+                return Connection.AUDIO_CODEC_G723;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_G711A:
+                return Connection.AUDIO_CODEC_G711A;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_G722:
+                return Connection.AUDIO_CODEC_G722;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_G711AB:
+                return Connection.AUDIO_CODEC_G711AB;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_G729:
+                return Connection.AUDIO_CODEC_G729;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVS_NB:
+                return Connection.AUDIO_CODEC_EVS_NB;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVS_WB:
+                return Connection.AUDIO_CODEC_EVS_WB;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVS_SWB:
+                return Connection.AUDIO_CODEC_EVS_SWB;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVS_FB:
+                return Connection.AUDIO_CODEC_EVS_FB;
+            default:
+                return Connection.AUDIO_CODEC_NONE;
+        }
+    }
+
     private boolean shouldSetDisableAddCallExtra() {
         if (mOriginalConnection == null) {
             return false;
@@ -1333,13 +1626,118 @@
         return true;
     }
 
+    /**
+     * @return The address's to which this Connection is currently communicating.
+     */
+    public final @Nullable List<Uri> getParticipants() {
+        return mParticipants;
+    }
+
+    /**
+     * Sets the value of the {@link #getParticipants()} property.
+     *
+     * @param address The participant address's.
+     */
+    public final void setParticipants(@Nullable List<Uri> address) {
+        mParticipants = address;
+    }
+
+    /**
+     * @return true if connection is adhocConference call else false.
+     */
+    public final boolean isAdhocConferenceCall() {
+        return mIsAdhocConferenceCall;
+    }
+
+    /**
+     * Sets the value of the {@link #isAdhocConferenceCall()} property.
+     *
+     * @param isAdhocConferenceCall represents if the call is adhoc conference call or not.
+     */
+    public void setIsAdhocConferenceCall(boolean isAdhocConferenceCall) {
+        mIsAdhocConferenceCall = isAdhocConferenceCall;
+        updateConnectionProperties();
+    }
+
     private boolean canHoldImsCalls() {
         PersistableBundle b = getCarrierConfig();
         // Return true if the CarrierConfig is unavailable
-        return !doesDeviceRespectHoldCarrierConfig() || b == null ||
-                b.getBoolean(CarrierConfigManager.KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL);
+        return (!doesDeviceRespectHoldCarrierConfig() || b == null ||
+                b.getBoolean(CarrierConfigManager.KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL)) &&
+                ((mOriginalConnection != null && mOriginalConnection.shouldAllowHoldingVideoCall())
+                || !VideoProfile.isVideo(getVideoState()));
     }
 
+    private boolean isConferenceHosted() {
+        boolean isHosted = false;
+        if (getTelephonyConnectionService() != null) {
+            for (Conference current : getTelephonyConnectionService().getAllConferences()) {
+                if (current instanceof ImsConference) {
+                    ImsConference other = (ImsConference) current;
+                    if (getState() == current.getState()) {
+                        continue;
+                    }
+                    if (other.isConferenceHost()) {
+                        isHosted = true;
+                        break;
+                    }
+                }
+            }
+        }
+        return isHosted;
+    }
+
+    private boolean isAddParticipantCapable() {
+        // not add participant capable for non ims phones
+        if (getPhone() == null || getPhone().getPhoneType() != PhoneConstants.PHONE_TYPE_IMS) {
+            return false;
+        }
+
+        if (!getCarrierConfig()
+                .getBoolean(CarrierConfigManager.KEY_SUPPORT_ADD_CONFERENCE_PARTICIPANTS_BOOL)) {
+            return false;
+        }
+
+        boolean isCapable = !mTreatAsEmergencyCall && (mConnectionState == Call.State.ACTIVE ||
+                mConnectionState == Call.State.HOLDING);
+
+        // add participant capable if current connection is a host connection or
+        // if conference is not hosted on the device
+        isCapable = isCapable && ((mOriginalConnection != null &&
+                mOriginalConnection.isConferenceHost()) ||
+                !isConferenceHosted());
+
+        /**
+          * For individual IMS calls, if the extra for remote conference support is
+          *     - indicated, then consider the same for add participant capability
+          *     - not indicated, then the add participant capability is same as before.
+          */
+        if (isCapable && (mOriginalConnection != null) && !mIsMultiParty) {
+            isCapable = mOriginalConnectionExtras.getBoolean(
+                    ImsCallProfile.EXTRA_CONFERENCE_AVAIL, isCapable);
+        }
+        return isCapable;
+    }
+
+    /**
+     * Applies the add participant capabilities to the {@code CallCapabilities} bit-mask.
+     *
+     * @param callCapabilities The {@code CallCapabilities} bit-mask.
+     * @return The capabilities with the add participant capabilities applied.
+     */
+    private int applyAddParticipantCapabilities(int callCapabilities) {
+        int currentCapabilities = callCapabilities;
+        if (isAddParticipantCapable()) {
+            currentCapabilities = changeBitmask(currentCapabilities,
+                    Connection.CAPABILITY_ADD_PARTICIPANT, true);
+        } else {
+            currentCapabilities = changeBitmask(currentCapabilities,
+                    Connection.CAPABILITY_ADD_PARTICIPANT, false);
+        }
+        return currentCapabilities;
+    }
+
+    @VisibleForTesting
     public PersistableBundle getCarrierConfig() {
         Phone phone = getPhone();
         if (phone == null) {
@@ -1359,6 +1757,50 @@
         return false;
     }
 
+    private boolean isCallTransferSupported() {
+        PersistableBundle b = getCarrierConfig();
+        // Return false if the CarrierConfig is unavailable
+        if (b != null) {
+            return b.getBoolean(CarrierConfigManager.KEY_CARRIER_ALLOW_TRANSFER_IMS_CALL_BOOL);
+        }
+        return false;
+    }
+
+    private boolean canTransfer(TelephonyConnection c) {
+        com.android.internal.telephony.Connection connection = c.getOriginalConnection();
+        return (connection != null && !connection.isMultiparty()
+                && (c.getState() == STATE_ACTIVE || c.getState() == STATE_HOLDING));
+    }
+
+    private boolean canTransferToNumber() {
+        if (!isCallTransferSupported()) {
+            return false;
+        }
+        return canTransfer(this);
+    }
+
+    private boolean canConsultativeTransfer() {
+        if (!isCallTransferSupported()) {
+            return false;
+        }
+        if (!canTransfer(this)) {
+            return false;
+        }
+        boolean canConsultativeTransfer = false;
+        if (getTelephonyConnectionService() != null) {
+            for (Connection current : getTelephonyConnectionService().getAllConnections()) {
+                if (current != this && current instanceof TelephonyConnection) {
+                    TelephonyConnection other = (TelephonyConnection) current;
+                    if (canTransfer(other)) {
+                        canConsultativeTransfer = true;
+                        break;
+                    }
+                }
+            }
+        }
+        return canConsultativeTransfer;
+    }
+
     /**
      * Determines if the device will respect the value of the
      * {@link CarrierConfigManager#KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL} configuration option.
@@ -1394,6 +1836,7 @@
                 getPhone().unregisterForPreciseCallStateChanged(mHandler);
                 getPhone().unregisterForRingbackTone(mHandler);
                 getPhone().unregisterForHandoverStateChanged(mHandler);
+                getPhone().unregisterForRedialConnectionChanged(mHandler);
                 getPhone().unregisterForDisconnect(mHandler);
                 getPhone().unregisterForSuppServiceNotification(mHandler);
                 getPhone().unregisterForOnHoldTone(mHandler);
@@ -1408,6 +1851,7 @@
 
     protected void hangup(int telephonyDisconnectCode) {
         if (mOriginalConnection != null) {
+            mHangupDisconnectCause = telephonyDisconnectCode;
             try {
                 // Hanging up a ringing call requires that we invoke call.hangup() as opposed to
                 // connection.hangup(). Without this change, the party originating the call
@@ -1437,7 +1881,47 @@
                 // There are a few cases where mOriginalConnection has not been set yet. For
                 // example, when the radio has to be turned on to make an emergency call,
                 // mOriginalConnection could not be set for many seconds.
-                setDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
+                setTelephonyConnectionDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
+                        android.telephony.DisconnectCause.LOCAL,
+                        "Local Disconnect before connection established."));
+                close();
+            }
+        }
+    }
+
+    protected void reject(@android.telecom.Call.RejectReason int rejectReason) {
+        if (mOriginalConnection != null) {
+            mHangupDisconnectCause = android.telephony.DisconnectCause.INCOMING_REJECTED;
+            try {
+                // Hanging up a ringing call requires that we invoke call.hangup() as opposed to
+                // connection.hangup(). Without this change, the party originating the call
+                // will not get sent to voicemail if the user opts to reject the call.
+                if (isValidRingingCall()) {
+                    Call call = getCall();
+                    if (call != null) {
+                        call.hangup(rejectReason);
+                    } else {
+                        Log.w(this, "Attempting to hangup a connection without backing call.");
+                    }
+                } else {
+                    // We still prefer to call connection.hangup() for non-ringing calls
+                    // in order to support hanging-up specific calls within a conference call.
+                    // If we invoked call.hangup() while in a conference, we would end up
+                    // hanging up the entire conference call instead of the specific connection.
+                    mOriginalConnection.hangup();
+                }
+            } catch (CallStateException e) {
+                Log.e(this, e, "Call to Connection.hangup failed with exception");
+            }
+        } else {
+            if (getState() == STATE_DISCONNECTED) {
+                Log.i(this, "hangup called on an already disconnected call!");
+                close();
+            } else {
+                // There are a few cases where mOriginalConnection has not been set yet. For
+                // example, when the radio has to be turned on to make an emergency call,
+                // mOriginalConnection could not be set for many seconds.
+                setTelephonyConnectionDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
                         android.telephony.DisconnectCause.LOCAL,
                         "Local Disconnect before connection established."));
                 close();
@@ -1539,8 +2023,8 @@
                         for (String key : extras.keySet()) {
                             Object value = extras.get(key);
                             if (value instanceof String) {
-                                Log.d(this, "updateExtras Key=" + Log.pii(key) +
-                                             " value=" + Log.pii((String)value));
+                                Log.d(this, "updateExtras Key=" + Rlog.pii(LOG_TAG, key)
+                                        + " value=" + Rlog.pii(LOG_TAG, value));
                             }
                         }
                     }
@@ -1558,12 +2042,18 @@
                     }
 
                     // Ensure extras are propagated to Telecom.
-                    putExtras(mOriginalConnectionExtras);
+                    putTelephonyExtras(mOriginalConnectionExtras);
+                    // If extras contain Conference support information,
+                    // then ensure capabilities are updated.
+                    if (mOriginalConnectionExtras.containsKey(
+                            ImsCallProfile.EXTRA_CONFERENCE_AVAIL)) {
+                        updateConnectionCapabilities();
+                    }
                 } else {
                     Log.d(this, "Extras update not required");
                 }
             } else {
-                Log.d(this, "updateExtras extras: " + Log.pii(extras));
+                Log.d(this, "updateExtras extras: " + Rlog.pii(LOG_TAG, extras));
             }
         }
     }
@@ -1627,19 +2117,19 @@
                     setActiveInternal();
                     break;
                 case HOLDING:
-                    setOnHold();
+                    setTelephonyConnectionOnHold();
                     break;
                 case DIALING:
                 case ALERTING:
                     if (mOriginalConnection != null && mOriginalConnection.isPulledCall()) {
-                        setPulling();
+                        setTelephonyConnectionPulling();
                     } else {
-                        setDialing();
+                        setTelephonyConnectionDialing();
                     }
                     break;
                 case INCOMING:
                 case WAITING:
-                    setRinging();
+                    setTelephonyConnectionRinging();
                     break;
                 case DISCONNECTED:
                     if (shouldTreatAsEmergencyCall()
@@ -1660,11 +2150,19 @@
                             preciseDisconnectCause =
                                     mOriginalConnection.getPreciseDisconnectCause();
                         }
-                        setDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
-                                mOriginalConnection.getDisconnectCause(),
-                                preciseDisconnectCause,
-                                mOriginalConnection.getVendorDisconnectCause(),
-                                getPhone().getPhoneId()));
+                        int disconnectCause = mOriginalConnection.getDisconnectCause();
+                        if ((mHangupDisconnectCause != DisconnectCause.NOT_VALID)
+                                && (mHangupDisconnectCause != disconnectCause)) {
+                            Log.i(LOG_TAG, "setDisconnected: override cause: " + disconnectCause
+                                    + " -> " + mHangupDisconnectCause);
+                            disconnectCause = mHangupDisconnectCause;
+                        }
+                        setTelephonyConnectionDisconnected(
+                                DisconnectCauseUtil.toTelecomDisconnectCause(
+                                        disconnectCause,
+                                        preciseDisconnectCause,
+                                        mOriginalConnection.getVendorDisconnectCause(),
+                                        getPhone().getPhoneId()));
                         close();
                     }
                     break;
@@ -1686,6 +2184,7 @@
         updateAddress();
         updateMultiparty();
         refreshDisableAddCall();
+        refreshCodecType();
     }
 
     /**
@@ -1744,8 +2243,8 @@
         // To "optimize", we check here to see if there already exists any active calls.  If so,
         // we issue an update for those calls first to make sure we only have one top-level
         // active call.
-        if (getConnectionService() != null) {
-            for (Connection current : getConnectionService().getAllConnections()) {
+        if (getTelephonyConnectionService() != null) {
+            for (Connection current : getTelephonyConnectionService().getAllConnections()) {
                 if (current != this && current instanceof TelephonyConnection) {
                     TelephonyConnection other = (TelephonyConnection) current;
                     if (other.getState() == STATE_ACTIVE) {
@@ -1754,13 +2253,18 @@
                 }
             }
         }
-        setActive();
+        setTelephonyConnectionActive();
     }
 
-    protected void close() {
+    public void close() {
         Log.v(this, "close");
         clearOriginalConnection();
         destroy();
+        if (mTelephonyConnectionService != null) {
+            removeTelephonyConnectionListener(
+                    mTelephonyConnectionService.getTelephonyConnectionListener());
+        }
+        notifyDestroyed();
     }
 
     /**
@@ -1772,9 +2276,10 @@
      * @return {@code true} if the connection is video capable, {@code false} otherwise.
      */
     private boolean isVideoCapable() {
-        return can(mOriginalConnectionCapabilities, Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL)
-                && can(mOriginalConnectionCapabilities,
-                Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL);
+        return (mOriginalConnectionCapabilities & Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL)
+                == Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL
+                && (mOriginalConnectionCapabilities & Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL)
+                == Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL;
     }
 
     /**
@@ -1786,7 +2291,8 @@
      * @return {@code true} if the connection is external, {@code false} otherwise.
      */
     private boolean isExternalConnection() {
-        return can(mOriginalConnectionCapabilities, Capability.IS_EXTERNAL_CONNECTION);
+        return (mOriginalConnectionCapabilities
+                & Capability.IS_EXTERNAL_CONNECTION) == Capability.IS_EXTERNAL_CONNECTION;
     }
 
     /**
@@ -1808,8 +2314,10 @@
      * @return {@code true} if the connection is pullable, {@code false} otherwise.
      */
     private boolean isPullable() {
-        return can(mOriginalConnectionCapabilities, Capability.IS_EXTERNAL_CONNECTION)
-                && can(mOriginalConnectionCapabilities, Capability.IS_PULLABLE);
+        return (mOriginalConnectionCapabilities & Capability.IS_EXTERNAL_CONNECTION)
+                == Capability.IS_EXTERNAL_CONNECTION
+                && (mOriginalConnectionCapabilities & Capability.IS_PULLABLE)
+                == Capability.IS_PULLABLE;
     }
 
     /**
@@ -1867,17 +2375,20 @@
     public int applyOriginalConnectionCapabilities(int capabilities) {
         // We only support downgrading to audio if both the remote and local side support
         // downgrading to audio.
-        boolean supportsDowngradeToAudio = can(mOriginalConnectionCapabilities,
-                Capability.SUPPORTS_DOWNGRADE_TO_VOICE_LOCAL |
-                        Capability.SUPPORTS_DOWNGRADE_TO_VOICE_REMOTE);
+        int supportsDowngrade = Capability.SUPPORTS_DOWNGRADE_TO_VOICE_LOCAL
+                | Capability.SUPPORTS_DOWNGRADE_TO_VOICE_REMOTE;
+        boolean supportsDowngradeToAudio =
+                (mOriginalConnectionCapabilities & supportsDowngrade) == supportsDowngrade;
         capabilities = changeBitmask(capabilities,
                 CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO, !supportsDowngradeToAudio);
 
         capabilities = changeBitmask(capabilities, CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL,
-                can(mOriginalConnectionCapabilities, Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL));
+                (mOriginalConnectionCapabilities & Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL)
+                        == Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL);
 
-        boolean isLocalVideoSupported = can(mOriginalConnectionCapabilities,
-                Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL) && !mIsTtyEnabled;
+        boolean isLocalVideoSupported = (mOriginalConnectionCapabilities
+                & Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL)
+                == Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL && !mIsTtyEnabled;
         capabilities = changeBitmask(capabilities, CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL,
                 isLocalVideoSupported);
 
@@ -2104,13 +2615,13 @@
                     : R.string.status_hint_label_wifi_call;
 
             Context context = getPhone().getContext();
-            setStatusHints(new StatusHints(
-                    context.getString(labelId),
+            setTelephonyStatusHints(new StatusHints(
+                    getResourceString(labelId),
                     Icon.createWithResource(
                             context, R.drawable.ic_signal_wifi_4_bar_24dp),
                     null /* extras */));
         } else {
-            setStatusHints(null);
+            setTelephonyStatusHints(null);
         }
     }
 
@@ -2188,6 +2699,7 @@
      * 3. If call is a video call, carrier supports video conference calls.
      * 4. If call is a wifi call and VoWIFI is disabled and carrier supports merging these calls.
      */
+    @VisibleForTesting
     void refreshConferenceSupported() {
         boolean isVideoCall = VideoProfile.isVideo(getVideoState());
         Phone phone = getPhone();
@@ -2314,7 +2826,7 @@
         sb.append(" properties:");
         sb.append(propertiesToString(getConnectionProperties()));
         sb.append(" address:");
-        sb.append(Log.pii(getAddress()));
+        sb.append(Rlog.pii(LOG_TAG, getAddress()));
         sb.append(" originalConnection:");
         sb.append(mOriginalConnection);
         sb.append(" partOfConf:");
@@ -2325,7 +2837,370 @@
         }
         sb.append(" confSupported:");
         sb.append(mIsConferenceSupported ? "Y" : "N");
+        sb.append(" isAdhocConf:");
+        sb.append(isAdhocConferenceCall() ? "Y" : "N");
         sb.append("]");
         return sb.toString();
     }
+
+    public final void setTelephonyConnectionService(TelephonyConnectionService connectionService) {
+        mTelephonyConnectionService = connectionService;
+    }
+
+    public final TelephonyConnectionService getTelephonyConnectionService() {
+        return mTelephonyConnectionService;
+    }
+
+    /**
+     * Set this {@link TelephonyConnection} to an active state.
+     * <p>
+     * Note: This should be used instead of {@link #setActive()} to ensure listeners are notified.
+     */
+    public void setTelephonyConnectionActive() {
+        setActive();
+        notifyStateChanged(getState());
+    }
+
+    /**
+     * Set this {@link TelephonyConnection} to a ringing state.
+     * <p>
+     * Note: This should be used instead of {@link #setRinging()} to ensure listeners are notified.
+     */
+    public void setTelephonyConnectionRinging() {
+        setRinging();
+        notifyStateChanged(getState());
+    }
+
+    /**
+     * Set this {@link TelephonyConnection} to an initializing state.
+     * <p>
+     * Note: This should be used instead of {@link #setInitializing()} to ensure listeners are
+     * notified.
+     */
+    public void setTelephonyConnectionInitializing() {
+        setInitializing();
+        notifyStateChanged(getState());
+    }
+
+    /**
+     * Set this {@link TelephonyConnection} to a dialing state.
+     * <p>
+     * Note: This should be used instead of {@link #setDialing()} to ensure listeners are notified.
+     */
+    public void setTelephonyConnectionDialing() {
+        setDialing();
+        notifyStateChanged(getState());
+    }
+
+    /**
+     * Set this {@link TelephonyConnection} to a pulling state.
+     * <p>
+     * Note: This should be used instead of {@link #setPulling()} to ensure listeners are notified.
+     */
+    public void setTelephonyConnectionPulling() {
+        setPulling();
+        notifyStateChanged(getState());
+    }
+
+    /**
+     * Set this {@link TelephonyConnection} to a held state.
+     * <p>
+     * Note: This should be used instead of {@link #setOnHold()} to ensure listeners are notified.
+     */
+    public void setTelephonyConnectionOnHold() {
+        setOnHold();
+        notifyStateChanged(getState());
+    }
+
+    /**
+     * Set this {@link TelephonyConnection} to a held state.
+     * <p>
+     * Note: This should be used instead of
+     * {@link #setDisconnected(android.telecom.DisconnectCause)} to ensure listeners are notified.
+     */
+    public void setTelephonyConnectionDisconnected(@NonNull
+            android.telecom.DisconnectCause disconnectCause) {
+        setDisconnected(disconnectCause);
+        notifyDisconnected(disconnectCause);
+        notifyStateChanged(getState());
+    }
+
+    /**
+     * Sends a connection event for this {@link TelephonyConnection}.
+     * <p>
+     * Note: This should be used instead of {@link #sendConnectionEvent(String, Bundle)} to ensure
+     * listeners are notified.
+     */
+    public void sendTelephonyConnectionEvent(@NonNull String event, @Nullable Bundle extras) {
+        sendConnectionEvent(event, extras);
+        notifyTelephonyConnectionEvent(event, extras);
+    }
+
+    /**
+     * Sets the extras associated with this {@link TelephonyConnection}.
+     * <p>
+     * Note: This should be used instead of {@link #putExtras(Bundle)} to ensure listeners are
+     * notified.
+     */
+    public void putTelephonyExtras(@NonNull Bundle extras) {
+        putExtras(extras);
+        notifyPutExtras(extras);
+    }
+
+    /**
+     * Removes the specified extras associated with this {@link TelephonyConnection}.
+     * <p>
+     * Note: This should be used instead of {@link #removeExtras(String...)} to ensure listeners are
+     * notified.
+     */
+    public void removeTelephonyExtras(@NonNull List<String> keys) {
+        removeExtras(keys);
+        notifyRemoveExtras(keys);
+    }
+
+    /**
+     * Sets the video state associated with this {@link TelephonyConnection}.
+     * <p>
+     * Note: This should be used instead of {@link #setVideoState(int)} to ensure listeners are
+     * notified.
+     * @param videoState The new video state. Valid values:
+     *                   {@link VideoProfile#STATE_AUDIO_ONLY},
+     *                   {@link VideoProfile#STATE_BIDIRECTIONAL},
+     *                   {@link VideoProfile#STATE_TX_ENABLED},
+     *                   {@link VideoProfile#STATE_RX_ENABLED}.
+     */
+    public void setTelephonyVideoState(int videoState) {
+        setVideoState(videoState);
+        notifyVideoStateChanged(videoState);
+    }
+
+    /**
+     * Sets the video provider associated with this {@link TelephonyConnection}.
+     * <p>
+     * Note: This should be used instead of {@link #setVideoProvider(VideoProvider)} to ensure
+     * listeners are notified.
+     */
+    public void setTelephonyVideoProvider(@Nullable VideoProvider videoProvider) {
+        setVideoProvider(videoProvider);
+        notifyVideoProviderChanged(videoProvider);
+    }
+
+    /**
+     * Sets the status hints associated with this {@link TelephonyConnection}.
+     * <p>
+     * Note: This should be used instead of {@link #setStatusHints(StatusHints)} to ensure listeners
+     * are notified.
+     */
+    public void setTelephonyStatusHints(@Nullable StatusHints statusHints) {
+        setStatusHints(statusHints);
+        notifyStatusHintsChanged(statusHints);
+    }
+
+    /**
+     * Sets RIL voice radio technology used for current connection.
+     * <p>
+     * This property is set by the Telephony {@link ConnectionService}.
+     *
+     * @param vrat the RIL Voice Radio Technology used for current connection,
+     *             see {@code RIL_RADIO_TECHNOLOGY_*} in {@link android.telephony.ServiceState}.
+     */
+    public final void setCallRadioTech(@RilRadioTechnology int vrat) {
+        Bundle extras = getExtras();
+        if (extras == null) {
+            extras = new Bundle();
+        }
+        extras.putInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE,
+                ServiceState.rilRadioTechnologyToNetworkType(vrat));
+        putExtras(extras);
+        // Propagates the call radio technology to its parent {@link android.telecom.Conference}
+        // This action only covers non-IMS CS conference calls.
+        // For IMS PS call conference call, it can be updated via its host connection
+        // {@link #Listener.onExtrasChanged} event.
+        if (getConference() != null) {
+            Bundle newExtras = new Bundle();
+            newExtras.putInt(
+                    TelecomManager.EXTRA_CALL_NETWORK_TYPE,
+                    ServiceState.rilRadioTechnologyToNetworkType(vrat));
+            getConference().putExtras(newExtras);
+        }
+    }
+
+    /**
+     * Returns RIL voice radio technology used for current connection.
+     * <p>
+     * Used by the Telephony {@link ConnectionService}.
+     *
+     * @return the RIL voice radio technology used for current connection,
+     *         see {@code RIL_RADIO_TECHNOLOGY_*} in {@link android.telephony.ServiceState}.
+     */
+    public final @RilRadioTechnology int getCallRadioTech() {
+        int voiceNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN;
+        Bundle extras = getExtras();
+        if (extras != null) {
+            voiceNetworkType = extras.getInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE,
+                    TelephonyManager.NETWORK_TYPE_UNKNOWN);
+        }
+        return ServiceState.networkTypeToRilRadioTechnology(voiceNetworkType);
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of a change to conference participant data
+     * received via the {@link ImsConference} (i.e. conference event package).
+     *
+     * @param conferenceParticipants The participants.
+     */
+    private void updateConferenceParticipants(
+            @NonNull List<ConferenceParticipant> conferenceParticipants) {
+        for (TelephonyConnectionListener l : mTelephonyListeners) {
+            l.onConferenceParticipantsChanged(this, conferenceParticipants);
+        }
+    }
+
+    /**
+     * Called by a {@link ConnectionService} to notify Telecom that a {@link Conference#onMerge()}
+     * operation has started.
+     */
+    protected void notifyConferenceStarted() {
+        for (TelephonyConnectionListener l : mTelephonyListeners) {
+            l.onConferenceStarted();
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s when a change has occurred to the Connection
+     * which impacts its ability to be a part of a conference call.
+     * @param isConferenceSupported {@code true} if the connection supports being part of a
+     *      conference call, {@code false} otherwise.
+     */
+    private void notifyConferenceSupportedChanged(boolean isConferenceSupported) {
+        for (TelephonyConnectionListener l : mTelephonyListeners) {
+            l.onConferenceSupportedChanged(this, isConferenceSupported);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of changes to the connection capabilities.
+     * @param newCapabilities the new capabilities.
+     */
+    private void notifyConnectionCapabilitiesChanged(int newCapabilities) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onConnectionCapabilitiesChanged(this, newCapabilities);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of changes to the connection properties.
+     * @param newProperties the new properties.
+     */
+    private void notifyConnectionPropertiesChanged(int newProperties) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onConnectionPropertiesChanged(this, newProperties);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s when a connection is destroyed.
+     */
+    private void notifyDestroyed() {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onDestroyed(this);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s when a connection disconnects.
+     * @param cause The disconnect cause.
+     */
+    private void notifyDisconnected(android.telecom.DisconnectCause cause) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onDisconnected(this, cause);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of connection state changes.
+     * @param newState The new state.
+     */
+    private void notifyStateChanged(int newState) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onStateChanged(this, newState);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of telephony connection events.
+     * @param event The event.
+     * @param extras Any extras.
+     */
+    private void notifyTelephonyConnectionEvent(String event, Bundle extras) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onConnectionEvent(this, event, extras);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s when extras are added to the connection.
+     * @param extras The new extras.
+     */
+    private void notifyPutExtras(Bundle extras) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onExtrasChanged(this, extras);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s when extra keys are removed from a connection.
+     * @param keys The removed keys.
+     */
+    private void notifyRemoveExtras(List<String> keys) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onExtrasRemoved(this, keys);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of a change to the video state of a connection.
+     * @param videoState The new video state. Valid values:
+     *                   {@link VideoProfile#STATE_AUDIO_ONLY},
+     *                   {@link VideoProfile#STATE_BIDIRECTIONAL},
+     *                   {@link VideoProfile#STATE_TX_ENABLED},
+     *                   {@link VideoProfile#STATE_RX_ENABLED}.
+     */
+    private void notifyVideoStateChanged(int videoState) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onVideoStateChanged(this, videoState);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of a whether to play Ringback Tone or not.
+     * @param ringback Whether the ringback tone is to be played
+     */
+    private void notifyRingbackRequested(boolean ringback) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onRingbackRequested(this, ringback);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of changes to the video provider for a
+     * connection.
+     * @param videoProvider The new video provider.
+     */
+    private void notifyVideoProviderChanged(VideoProvider videoProvider) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onVideoProviderChanged(this, videoProvider);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of changes to the status hints for a
+     * connection.
+     * @param statusHints The new status hints.
+     */
+    private void notifyStatusHintsChanged(StatusHints statusHints) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onStatusHintsChanged(this, statusHints);
+        }
+    }
 }
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index c517cd8..0b60e37 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -25,7 +25,9 @@
 import android.content.IntentFilter;
 import android.net.Uri;
 import android.os.Bundle;
-import android.provider.Settings;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Looper;
 import android.telecom.Conference;
 import android.telecom.Connection;
 import android.telecom.ConnectionRequest;
@@ -100,15 +102,11 @@
         }
         @Override
         public void addConference(TelephonyConference mTelephonyConference) {
-            TelephonyConnectionService.this.addConference(mTelephonyConference);
+            TelephonyConnectionService.this.addTelephonyConference(mTelephonyConference);
         }
         @Override
         public void addConference(ImsConference mImsConference) {
-            TelephonyConnectionService.this.addConference(mImsConference);
-        }
-        @Override
-        public void removeConnection(Connection connection) {
-            TelephonyConnectionService.this.removeConnection(connection);
+            TelephonyConnectionService.this.addTelephonyConference(mImsConference);
         }
         @Override
         public void addExistingConnection(PhoneAccountHandle phoneAccountHandle,
@@ -128,13 +126,6 @@
         }
     };
 
-    private final Connection.Listener mConnectionListener = new Connection.Listener() {
-        @Override
-        public void onConferenceChanged(Connection connection, Conference conference) {
-            mHoldTracker.updateHoldCapability(connection.getPhoneAccountHandle());
-        }
-    };
-
     private final BroadcastReceiver mTtyBroadcastReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
@@ -171,6 +162,8 @@
     // destroyed.
     @VisibleForTesting
     public Pair<WeakReference<TelephonyConnection>, Queue<Phone>> mEmergencyRetryCache;
+    private Handler mDdsSwitchHandler;
+    private HandlerThread mHandlerThread;
     private DeviceState mDeviceState = new DeviceState();
 
     /**
@@ -184,6 +177,8 @@
         public boolean isLocked = false;
         // Is the emergency number associated with the slot
         public boolean hasDialedEmergencyNumber = false;
+        //SimState
+        public int simState;
 
         public SlotStatus(int slotId, int capabilities) {
             this.slotId = slotId;
@@ -347,6 +342,27 @@
     };
 
     /**
+     * Factory for Handler creation in order to remove flakiness during t esting.
+     */
+    @VisibleForTesting
+    public interface HandlerFactory {
+        HandlerThread createHandlerThread(String name);
+        Handler createHandler(Looper looper);
+    }
+
+    private HandlerFactory mHandlerFactory = new HandlerFactory() {
+        @Override
+        public HandlerThread createHandlerThread(String name) {
+            return new HandlerThread(name);
+        }
+
+        @Override
+        public Handler createHandler(Looper looper) {
+            return new Handler(looper);
+        }
+    };
+
+    /**
      * DisconnectCause depends on PhoneGlobals in order to get a system context. Mock out
      * dependency for testing.
      */
@@ -405,6 +421,14 @@
     }
 
     /**
+     * Overrides radioOnHelper for testing.
+     */
+    @VisibleForTesting
+    public void setRadioOnHelper(RadioOnHelper radioOnHelper) {
+        mRadioOnHelper = radioOnHelper;
+    }
+
+    /**
      * Overrides PhoneSwitcher dependencies for testing.
      */
     @VisibleForTesting
@@ -429,6 +453,14 @@
     }
 
     /**
+     * Override Handler creation factory for testing.
+     */
+    @VisibleForTesting
+    public void setHandlerFactory(HandlerFactory handlerFactory) {
+        mHandlerFactory = handlerFactory;
+    }
+
+    /**
      * Override DisconnectCause creation for testing.
      */
     @VisibleForTesting
@@ -452,10 +484,17 @@
         }
     };
 
+    private final TelephonyConferenceBase.TelephonyConferenceListener mTelephonyConferenceListener =
+            new TelephonyConferenceBase.TelephonyConferenceListener() {
+        @Override
+        public void onConferenceMembershipChanged(Connection connection) {
+            mHoldTracker.updateHoldCapability(connection.getPhoneAccountHandle());
+        }
+    };
+
     @Override
     public void onCreate() {
         super.onCreate();
-        Log.initLogging(this);
         mImsConferenceController = new ImsConferenceController(
                 TelecomAccountRegistry.getInstance(this),
                 mTelephonyConnectionServiceProxy,
@@ -472,14 +511,149 @@
         IntentFilter intentFilter = new IntentFilter(
                 TelecomManager.ACTION_TTY_PREFERRED_MODE_CHANGED);
         registerReceiver(mTtyBroadcastReceiver, intentFilter);
+        mHandlerThread = mHandlerFactory.createHandlerThread("DdsSwitchHandlerThread");
+        mHandlerThread.start();
+        Looper looper = mHandlerThread.getLooper();
+        mDdsSwitchHandler = mHandlerFactory.createHandler(looper);
     }
 
     @Override
     public boolean onUnbind(Intent intent) {
         unregisterReceiver(mTtyBroadcastReceiver);
+        mHandlerThread.quitSafely();
         return super.onUnbind(intent);
     }
 
+    private Conference placeOutgoingConference(ConnectionRequest request,
+            Connection resultConnection, Phone phone) {
+        if (resultConnection instanceof TelephonyConnection) {
+            return placeOutgoingConference((TelephonyConnection) resultConnection, phone, request);
+        }
+        return null;
+    }
+
+    private Conference placeOutgoingConference(TelephonyConnection conferenceHostConnection,
+            Phone phone, ConnectionRequest request) {
+        updatePhoneAccount(conferenceHostConnection, phone);
+        com.android.internal.telephony.Connection originalConnection = null;
+        try {
+            originalConnection = phone.startConference(
+                    getParticipantsToDial(request.getParticipants()),
+                    new ImsPhone.ImsDialArgs.Builder()
+                    .setVideoState(request.getVideoState())
+                    .setRttTextStream(conferenceHostConnection.getRttTextStream())
+                    .build());
+        } catch (CallStateException e) {
+            Log.e(this, e, "placeOutgoingConference, phone.startConference exception: " + e);
+            handleCallStateException(e, conferenceHostConnection, phone);
+            return null;
+        }
+
+        if (originalConnection == null) {
+            Log.d(this, "placeOutgoingConference, phone.startConference returned null");
+            conferenceHostConnection.setDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
+                    android.telephony.DisconnectCause.OUTGOING_FAILURE,
+                    "conferenceHostConnection is null",
+                    phone.getPhoneId()));
+            conferenceHostConnection.clearOriginalConnection();
+            conferenceHostConnection.destroy();
+        } else {
+            conferenceHostConnection.setOriginalConnection(originalConnection);
+        }
+
+        return prepareConference(conferenceHostConnection, request.getAccountHandle());
+    }
+
+    Conference prepareConference(Connection conn, PhoneAccountHandle phoneAccountHandle) {
+        if (!(conn instanceof TelephonyConnection)) {
+            Log.w(this, "prepareConference returning NULL conference");
+            return null;
+        }
+
+        TelephonyConnection connection = (TelephonyConnection)conn;
+        ImsConference conference = new ImsConference(TelecomAccountRegistry.getInstance(this),
+                mTelephonyConnectionServiceProxy, connection,
+                phoneAccountHandle, () -> true);
+        mImsConferenceController.addConference(conference);
+        conference.setVideoState(connection,
+                connection.getVideoState());
+        conference.setVideoProvider(connection,
+                connection.getVideoProvider());
+        conference.setStatusHints(connection.getStatusHints());
+        conference.setAddress(connection.getAddress(),
+                connection.getAddressPresentation());
+        conference.setCallerDisplayName(connection.getCallerDisplayName(),
+                connection.getCallerDisplayNamePresentation());
+        conference.setParticipants(connection.getParticipants());
+        return conference;
+    }
+
+    @Override
+    public @Nullable Conference onCreateIncomingConference(
+            @Nullable PhoneAccountHandle connectionManagerPhoneAccount,
+            @NonNull final ConnectionRequest request) {
+        Log.i(this, "onCreateIncomingConference, request: " + request);
+        Connection connection = onCreateIncomingConnection(connectionManagerPhoneAccount, request);
+        Log.d(this, "onCreateIncomingConference, connection: %s", connection);
+        if (connection == null) {
+            Log.i(this, "onCreateIncomingConference, implementation returned null connection.");
+            return Conference.createFailedConference(
+                    new DisconnectCause(DisconnectCause.ERROR, "IMPL_RETURNED_NULL_CONNECTION"),
+                    request.getAccountHandle());
+        }
+
+        final Phone phone = getPhoneForAccount(request.getAccountHandle(),
+                false /* isEmergencyCall*/, null /* not an emergency call */);
+        if (phone == null) {
+            Log.d(this, "onCreateIncomingConference, phone is null");
+            return Conference.createFailedConference(
+                    DisconnectCauseUtil.toTelecomDisconnectCause(
+                            android.telephony.DisconnectCause.OUT_OF_SERVICE,
+                            "Phone is null"),
+                    request.getAccountHandle());
+        }
+
+        return prepareConference(connection, request.getAccountHandle());
+    }
+
+    @Override
+    public @Nullable Conference onCreateOutgoingConference(
+            @Nullable PhoneAccountHandle connectionManagerPhoneAccount,
+            @NonNull final ConnectionRequest request) {
+        Log.i(this, "onCreateOutgoingConference, request: " + request);
+        Connection connection = onCreateOutgoingConnection(connectionManagerPhoneAccount, request);
+        Log.d(this, "onCreateOutgoingConference, connection: %s", connection);
+        if (connection == null) {
+            Log.i(this, "onCreateOutgoingConference, implementation returned null connection.");
+            return Conference.createFailedConference(
+                    new DisconnectCause(DisconnectCause.ERROR, "IMPL_RETURNED_NULL_CONNECTION"),
+                    request.getAccountHandle());
+        }
+
+        final Phone phone = getPhoneForAccount(request.getAccountHandle(),
+                false /* isEmergencyCall*/, null /* not an emergency call */);
+        if (phone == null) {
+            Log.d(this, "onCreateOutgoingConference, phone is null");
+            return Conference.createFailedConference(
+                    DisconnectCauseUtil.toTelecomDisconnectCause(
+                            android.telephony.DisconnectCause.OUT_OF_SERVICE,
+                            "Phone is null"),
+                    request.getAccountHandle());
+        }
+
+        return placeOutgoingConference(request, connection, phone);
+    }
+
+    private String[] getParticipantsToDial(List<Uri> participants) {
+        String[] participantsToDial = new String[participants.size()];
+        int i = 0;
+        for (Uri participant : participants) {
+           participantsToDial[i] = participant.getSchemeSpecificPart();
+           i++;
+        }
+        return participantsToDial;
+    }
+
     @Override
     public Connection onCreateOutgoingConnection(
             PhoneAccountHandle connectionManagerPhoneAccount,
@@ -487,7 +661,9 @@
         Log.i(this, "onCreateOutgoingConnection, request: " + request);
 
         Uri handle = request.getAddress();
-        if (handle == null) {
+        boolean isAdhocConference = request.isAdhocConferenceCall();
+
+        if (!isAdhocConference && handle == null) {
             Log.d(this, "onCreateOutgoingConnection, handle is null");
             return Connection.createFailedConnection(
                     mDisconnectCauseFactory.toTelecomDisconnectCause(
@@ -590,19 +766,21 @@
         }
         final String numberToDial = number;
 
-
         final boolean isAirplaneModeOn = mDeviceState.isAirplaneModeOn(this);
 
         boolean needToTurnOnRadio = (isEmergencyNumber && (!isRadioOn() || isAirplaneModeOn))
                 || isRadioPowerDownOnBluetooth();
 
+        // Get the right phone object from the account data passed in.
+        final Phone phone = getPhoneForAccount(request.getAccountHandle(), isEmergencyNumber,
+                /* Note: when not an emergency, handle can be null for unknown callers */
+                handle == null ? null : handle.getSchemeSpecificPart());
+
         if (needToTurnOnRadio) {
             final Uri resultHandle = handle;
-            // By default, Connection based on the default Phone, since we need to return to Telecom
-            // now.
-            final int originalPhoneType = mPhoneFactoryProxy.getDefaultPhone().getPhoneType();
+            final int originalPhoneType = phone.getPhoneType();
             final Connection resultConnection = getTelephonyConnection(request, numberToDial,
-                    isEmergencyNumber, resultHandle, PhoneFactory.getDefaultPhone());
+                    isEmergencyNumber, resultHandle, phone);
             if (mRadioOnHelper == null) {
                 mRadioOnHelper = new RadioOnHelper(this);
             }
@@ -610,7 +788,7 @@
                 @Override
                 public void onComplete(RadioOnStateListener listener, boolean isRadioReady) {
                     handleOnComplete(isRadioReady, isEmergencyNumber, resultConnection, request,
-                            numberToDial, resultHandle, originalPhoneType);
+                            numberToDial, resultHandle, originalPhoneType, phone);
                 }
 
                 @Override
@@ -626,17 +804,20 @@
                         // been powered on and isn't in the UNAVAILABLE state, even if it is
                         // reporting the OUT_OF_SERVICE state.
                         return (phone.getState() == PhoneConstants.State.OFFHOOK)
-                            || phone.getServiceState().getState() != ServiceState.STATE_POWER_OFF;
+                            || phone.getServiceStateTracker().isRadioOn();
                     } else {
                         // Wait until we are in service and ready to make calls. This can happen
                         // when we power down the radio on bluetooth to save power on watches or if
                         // it is a test emergency number and we have to wait for the device to move
                         // IN_SERVICE before the call can take place over normal routing.
                         return (phone.getState() == PhoneConstants.State.OFFHOOK)
-                            || serviceState == ServiceState.STATE_IN_SERVICE;
+                                // Do not wait for voice in service on opportunistic SIMs.
+                                || SubscriptionController.getInstance().isOpportunistic(
+                                        phone.getSubId())
+                                || serviceState == ServiceState.STATE_IN_SERVICE;
                     }
                 }
-            });
+            }, isEmergencyNumber && !isTestEmergencyNumber, phone);
             // Return the still unconnected GsmConnection and wait for the Radios to boot before
             // connecting it to the underlying Phone.
             return resultConnection;
@@ -652,25 +833,29 @@
                                 "Add call restricted due to ongoing video call"));
             }
 
-            // Get the right phone object from the account data passed in.
-            final Phone phone = getPhoneForAccount(request.getAccountHandle(), isEmergencyNumber,
-                    /* Note: when not an emergency, handle can be null for unknown callers */
-                    handle == null ? null : handle.getSchemeSpecificPart());
             if (!isEmergencyNumber) {
                 final Connection resultConnection = getTelephonyConnection(request, numberToDial,
                         false, handle, phone);
-                return placeOutgoingConnection(request, resultConnection, phone);
+                if (isAdhocConference) {
+                    if (resultConnection instanceof TelephonyConnection) {
+                        TelephonyConnection conn = (TelephonyConnection)resultConnection;
+                        conn.setParticipants(request.getParticipants());
+                    }
+                    return resultConnection;
+                } else {
+                    return placeOutgoingConnection(request, resultConnection, phone);
+                }
             } else {
                 final Connection resultConnection = getTelephonyConnection(request, numberToDial,
                         true, handle, phone);
-                CompletableFuture<Boolean> phoneFuture = delayDialForDdsSwitch(phone);
-                phoneFuture.whenComplete((result, error) -> {
-                    if (error != null) {
-                        Log.w(this, "onCreateOutgoingConn - delayDialForDdsSwitch exception= "
-                                + error.getMessage());
+                mDdsSwitchHandler.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        boolean result = delayDialForDdsSwitch(phone);
+                        Log.i(this,
+                                "onCreateOutgoingConn - delayDialForDdsSwitch result = " + result);
+                        placeOutgoingConnection(request, resultConnection, phone);
                     }
-                    Log.i(this, "onCreateOutgoingConn - delayDialForDdsSwitch result = " + result);
-                    placeOutgoingConnection(request, resultConnection, phone);
                 });
                 return resultConnection;
             }
@@ -724,40 +909,42 @@
      */
     private void handleOnComplete(boolean isRadioReady, boolean isEmergencyNumber,
             Connection originalConnection, ConnectionRequest request, String numberToDial,
-            Uri handle, int originalPhoneType) {
+            Uri handle, int originalPhoneType, Phone phone) {
         // Make sure the Call has not already been canceled by the user.
         if (originalConnection.getState() == Connection.STATE_DISCONNECTED) {
             Log.i(this, "Call disconnected before the outgoing call was placed. Skipping call "
                     + "placement.");
+            if (isEmergencyNumber) {
+                // If call is already canceled by the user, notify modem to exit emergency call
+                // mode by sending radio on with forEmergencyCall=false.
+                for (Phone curPhone : mPhoneFactoryProxy.getPhones()) {
+                    curPhone.setRadioPower(true, false, false, true);
+                }
+            }
             return;
         }
-        // Get the right phone object since the radio has been turned on successfully.
         if (isRadioReady) {
-            final Phone phone = getPhoneForAccount(request.getAccountHandle(), isEmergencyNumber,
-                    /* Note: when not an emergency, handle can be null for unknown callers */
-                    handle == null ? null : handle.getSchemeSpecificPart());
             if (!isEmergencyNumber) {
                 adjustAndPlaceOutgoingConnection(phone, originalConnection, request, numberToDial,
                         handle, originalPhoneType, false);
             } else {
-                delayDialForDdsSwitch(phone).whenComplete((result, error) -> {
-                    if (error != null) {
-                        Log.w(this, "handleOnComplete - delayDialForDdsSwitch exception= "
-                                + error.getMessage());
+                mDdsSwitchHandler.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        boolean result = delayDialForDdsSwitch(phone);
+                        Log.i(this, "handleOnComplete - delayDialForDdsSwitch result = " + result);
+                        adjustAndPlaceOutgoingConnection(phone, originalConnection, request,
+                                numberToDial, handle, originalPhoneType, true);
                     }
-                    Log.i(this, "handleOnComplete - delayDialForDdsSwitch result = " + result);
-                    adjustAndPlaceOutgoingConnection(phone, originalConnection, request,
-                            numberToDial, handle, originalPhoneType, true);
                 });
             }
 
         } else {
             Log.w(this, "onCreateOutgoingConnection, failed to turn on radio");
-            originalConnection.setDisconnected(
-                     mDisconnectCauseFactory.toTelecomDisconnectCause(
+            closeOrDestroyConnection(originalConnection,
+                    mDisconnectCauseFactory.toTelecomDisconnectCause(
                             android.telephony.DisconnectCause.POWER_OFF,
                             "Failed to turn on radio."));
-            originalConnection.destroy();
         }
     }
 
@@ -778,17 +965,17 @@
             // TODO: Switch out the underlying connection instead of creating a new
             // one and causing UI Jank.
             boolean noActiveSimCard = SubscriptionController.getInstance()
-                    .getActiveSubInfoCount(phone.getContext().getOpPackageName()) == 0;
+                    .getActiveSubInfoCount(phone.getContext().getOpPackageName(),
+                            phone.getContext().getAttributionTag()) == 0;
             // If there's no active sim card and the device is in emergency mode, use E account.
             addExistingConnection(mPhoneUtilsProxy.makePstnPhoneAccountHandleWithPrefix(
                     phone, "", isEmergencyNumber && noActiveSimCard), repConnection);
             // Remove the old connection from Telecom after.
-            connectionToEvaluate.setDisconnected(
+            closeOrDestroyConnection(connectionToEvaluate,
                     mDisconnectCauseFactory.toTelecomDisconnectCause(
                             android.telephony.DisconnectCause.OUTGOING_CANCELED,
                             "Reconnecting outgoing Emergency Call.",
                             phone.getPhoneId()));
-            connectionToEvaluate.destroy();
         } else {
             placeOutgoingConnection((TelephonyConnection) connectionToEvaluate, phone, request);
         }
@@ -858,7 +1045,7 @@
             int dataNetType = phone.getServiceState().getDataNetworkType();
             if (dataNetType == TelephonyManager.NETWORK_TYPE_LTE ||
                     dataNetType == TelephonyManager.NETWORK_TYPE_LTE_CA) {
-                state = phone.getServiceState().getDataRegState();
+                state = phone.getServiceState().getDataRegistrationState();
             }
         }
 
@@ -921,8 +1108,7 @@
         final boolean isTtyModeEnabled = mDeviceState.isTtyModeEnabled(this);
         if (VideoProfile.isVideo(request.getVideoState()) && isTtyModeEnabled
                 && !isEmergencyNumber) {
-            return Connection.createFailedConnection(
-                    mDisconnectCauseFactory.toTelecomDisconnectCause(
+            return Connection.createFailedConnection(mDisconnectCauseFactory.toTelecomDisconnectCause(
                     android.telephony.DisconnectCause.VIDEO_CALL_NOT_ALLOWED_WHILE_TTY_ENABLED,
                     null, phone.getPhoneId()));
         }
@@ -945,7 +1131,7 @@
 
         final TelephonyConnection connection =
                 createConnectionFor(phone, null, true /* isOutgoing */, request.getAccountHandle(),
-                        request.getTelecomCallId(), request.getAddress(), request.getVideoState());
+                        request.getTelecomCallId(), request.isAdhocConferenceCall());
         if (connection == null) {
             return Connection.createFailedConnection(
                     mDisconnectCauseFactory.toTelecomDisconnectCause(
@@ -954,10 +1140,12 @@
                             phone.getPhoneId()));
         }
         connection.setAddress(handle, PhoneConstants.PRESENTATION_ALLOWED);
-        connection.setInitializing();
-        connection.setVideoState(request.getVideoState());
+        connection.setTelephonyConnectionInitializing();
+        connection.setTelephonyVideoState(request.getVideoState());
         connection.setRttTextStream(request.getRttTextStream());
         connection.setTtyEnabled(isTtyModeEnabled);
+        connection.setIsAdhocConferenceCall(request.isAdhocConferenceCall());
+        connection.setParticipants(request.getParticipants());
         return connection;
     }
 
@@ -989,11 +1177,26 @@
         Call call = phone.getRingingCall();
         if (!call.getState().isRinging()) {
             Log.i(this, "onCreateIncomingConnection, no ringing call");
-            return Connection.createFailedConnection(
+            Connection connection = Connection.createFailedConnection(
                     mDisconnectCauseFactory.toTelecomDisconnectCause(
                             android.telephony.DisconnectCause.INCOMING_MISSED,
                             "Found no ringing call",
                             phone.getPhoneId()));
+            Bundle extras = request.getExtras();
+
+            long time = extras.getLong(TelecomManager.EXTRA_CALL_CREATED_EPOCH_TIME_MILLIS);
+            if (time != 0) {
+                Log.i(this, "onCreateIncomingConnection. Set connect time info.");
+                connection.setConnectTimeMillis(time);
+            }
+
+            Uri address = extras.getParcelable(TelecomManager.EXTRA_INCOMING_CALL_ADDRESS);
+            if (address != null) {
+                Log.i(this, "onCreateIncomingConnection. Set caller id info.");
+                connection.setAddress(address, TelecomManager.PRESENTATION_ALLOWED);
+            }
+
+            return connection;
         }
 
         com.android.internal.telephony.Connection originalConnection =
@@ -1004,19 +1207,15 @@
             return Connection.createCanceledConnection();
         }
 
-        // We should rely on the originalConnection to get the video state.  The request coming
-        // from Telecom does not know the video state of the incoming call.
-        int videoState = originalConnection != null ? originalConnection.getVideoState() :
-                VideoProfile.STATE_AUDIO_ONLY;
-
         TelephonyConnection connection =
                 createConnectionFor(phone, originalConnection, false /* isOutgoing */,
                         request.getAccountHandle(), request.getTelecomCallId(),
-                        request.getAddress(), videoState);
+                        request.isAdhocConferenceCall());
         handleIncomingRtt(request, originalConnection);
         if (connection == null) {
             return Connection.createCanceledConnection();
         } else {
+            connection.setTtyEnabled(mDeviceState.isTtyModeEnabled(getApplicationContext()));
             return connection;
         }
     }
@@ -1069,6 +1268,84 @@
     }
 
     @Override
+    public void onCreateIncomingConnectionFailed(PhoneAccountHandle connectionManagerPhoneAccount,
+            ConnectionRequest request) {
+        Log.i(this, "onCreateIncomingConnectionFailed, request: " + request);
+        // If there is an incoming emergency CDMA Call (while the phone is in ECBM w/ No SIM),
+        // make sure the PhoneAccount lookup retrieves the default Emergency Phone.
+        PhoneAccountHandle accountHandle = request.getAccountHandle();
+        boolean isEmergency = false;
+        if (accountHandle != null && PhoneUtils.EMERGENCY_ACCOUNT_HANDLE_ID.equals(
+                accountHandle.getId())) {
+            Log.w(this, "onCreateIncomingConnectionFailed:Emergency call failed... ");
+            isEmergency = true;
+        }
+        Phone phone = getPhoneForAccount(accountHandle, isEmergency,
+                /* Note: when not an emergency, handle can be null for unknown callers */
+                request.getAddress() == null ? null : request.getAddress().getSchemeSpecificPart());
+        if (phone == null) {
+            Log.w(this, "onCreateIncomingConnectionFailed: can not find corresponding phone.");
+            return;
+        }
+
+        Call call = phone.getRingingCall();
+        if (!call.getState().isRinging()) {
+            Log.w(this, "onCreateIncomingConnectionFailed, no ringing call found for failed call");
+            return;
+        }
+
+        com.android.internal.telephony.Connection originalConnection =
+                call.getState() == Call.State.WAITING
+                        ? call.getLatestConnection() : call.getEarliestConnection();
+        TelephonyConnection knownConnection =
+                getConnectionForOriginalConnection(originalConnection);
+        if (knownConnection != null) {
+            Log.w(this, "onCreateIncomingConnectionFailed, original connection already registered."
+                    + " Hanging it up.");
+            knownConnection.onAbort();
+            return;
+        }
+
+        TelephonyConnection connection =
+                createConnectionFor(phone, originalConnection, false /* isOutgoing */,
+                        request.getAccountHandle(), request.getTelecomCallId());
+        if (connection == null) {
+            Log.w(this, "onCreateIncomingConnectionFailed, TelephonyConnection created as null, "
+                    + "ignoring.");
+            return;
+        }
+
+        // We have to do all of this work because in some cases, hanging up the call maps to
+        // different underlying signaling (CDMA), which is already encapsulated in
+        // TelephonyConnection.
+        connection.onReject();
+        connection.close();
+    }
+
+    /**
+     * Called by the {@link ConnectionService} when a newly created {@link Conference} has been
+     * added to the {@link ConnectionService} and sent to Telecom.  Here it is safe to send
+     * connection events.
+     *
+     * @param conference the {@link Conference}.
+     */
+    @Override
+    public void onCreateConferenceComplete(Conference conference) {
+        if (conference instanceof ImsConference) {
+            ImsConference imsConference = (ImsConference)conference;
+            TelephonyConnection telephonyConnection =
+                    (TelephonyConnection)(imsConference.getConferenceHost());
+            maybeSendInternationalCallEvent(telephonyConnection);
+        }
+    }
+
+    public void onCreateIncomingConferenceFailed(PhoneAccountHandle connectionManagerPhoneAccount,
+            ConnectionRequest request) {
+        Log.i(this, "onCreateIncomingConferenceFailed, request: " + request);
+        onCreateIncomingConnectionFailed(connectionManagerPhoneAccount, request);
+    }
+
+    @Override
     public void triggerConferenceRecalculate() {
         if (mTelephonyConferenceController.shouldRecalculate()) {
             mTelephonyConferenceController.recalculate();
@@ -1167,8 +1444,8 @@
         TelephonyConnection connection =
                 createConnectionFor(phone, unknownConnection,
                         !unknownConnection.isIncoming() /* isOutgoing */,
-                        request.getAccountHandle(), request.getTelecomCallId(),
-                        request.getAddress(), videoState);
+                        request.getAccountHandle(), request.getTelecomCallId()
+                );
 
         if (connection == null) {
             return Connection.createCanceledConnection();
@@ -1212,7 +1489,6 @@
     @Override
     public void onConnectionAdded(Connection connection) {
         if (connection instanceof Holdable && !isExternalConnection(connection)) {
-            connection.addConnectionListener(mConnectionListener);
             mHoldTracker.addHoldable(
                     connection.getPhoneAccountHandle(), (Holdable) connection);
         }
@@ -1343,9 +1619,7 @@
         } else {
             // We have run out of Phones to use. Disconnect the call and destroy the connection.
             Log.i(this, "retryOutgoingOriginalConnection, no more Phones to use. Disconnecting.");
-            c.setDisconnected(new DisconnectCause(DisconnectCause.ERROR));
-            c.clearOriginalConnection();
-            c.destroy();
+            closeOrDestroyConnection(c, new DisconnectCause(DisconnectCause.ERROR));
         }
     }
 
@@ -1370,6 +1644,46 @@
         com.android.internal.telephony.Connection originalConnection = null;
         try {
             if (phone != null) {
+                EmergencyNumber emergencyNumber =
+                        phone.getEmergencyNumberTracker().getEmergencyNumber(number);
+                if (emergencyNumber != null) {
+                    phone.notifyOutgoingEmergencyCall(emergencyNumber);
+                    if (!getAllConnections().isEmpty()) {
+                        if (!shouldHoldForEmergencyCall(phone)) {
+                            // If we do not support holding ongoing calls for an outgoing
+                            // emergency call, disconnect the ongoing calls.
+                            for (Connection c : getAllConnections()) {
+                                if (!c.equals(connection)
+                                        && c.getState() != Connection.STATE_DISCONNECTED
+                                        && c instanceof TelephonyConnection) {
+                                    ((TelephonyConnection) c).hangup(
+                                            android.telephony.DisconnectCause
+                                                    .OUTGOING_EMERGENCY_CALL_PLACED);
+                                }
+                            }
+                            for (Conference c : getAllConferences()) {
+                                if (c.getState() != Connection.STATE_DISCONNECTED
+                                        && c instanceof Conference) {
+                                    ((Conference) c).onDisconnect();
+                                }
+                            }
+                        } else if (!isVideoCallHoldAllowed(phone)) {
+                            // If we do not support holding ongoing video call for an outgoing
+                            // emergency call, disconnect the ongoing video call.
+                            for (Connection c : getAllConnections()) {
+                                if (!c.equals(connection)
+                                        && c.getState() == Connection.STATE_ACTIVE
+                                        && VideoProfile.isVideo(c.getVideoState())
+                                        && c instanceof TelephonyConnection) {
+                                    ((TelephonyConnection) c).hangup(
+                                            android.telephony.DisconnectCause
+                                                    .OUTGOING_EMERGENCY_CALL_PLACED);
+                                    break;
+                                }
+                            }
+                        }
+                    }
+                }
                 originalConnection = phone.dial(number, new ImsPhone.ImsDialArgs.Builder()
                         .setVideoState(videoState)
                         .setIntentExtras(extras)
@@ -1378,34 +1692,7 @@
             }
         } catch (CallStateException e) {
             Log.e(this, e, "placeOutgoingConnection, phone.dial exception: " + e);
-            int cause = android.telephony.DisconnectCause.OUTGOING_FAILURE;
-            switch (e.getError()) {
-                case CallStateException.ERROR_OUT_OF_SERVICE:
-                    cause = android.telephony.DisconnectCause.OUT_OF_SERVICE;
-                    break;
-                case CallStateException.ERROR_POWER_OFF:
-                    cause = android.telephony.DisconnectCause.POWER_OFF;
-                    break;
-                case CallStateException.ERROR_ALREADY_DIALING:
-                    cause = android.telephony.DisconnectCause.ALREADY_DIALING;
-                    break;
-                case CallStateException.ERROR_CALL_RINGING:
-                    cause = android.telephony.DisconnectCause.CANT_CALL_WHILE_RINGING;
-                    break;
-                case CallStateException.ERROR_CALLING_DISABLED:
-                    cause = android.telephony.DisconnectCause.CALLING_DISABLED;
-                    break;
-                case CallStateException.ERROR_TOO_MANY_CALLS:
-                    cause = android.telephony.DisconnectCause.TOO_MANY_ONGOING_CALLS;
-                    break;
-                case CallStateException.ERROR_OTASP_PROVISIONING_IN_PROCESS:
-                    cause = android.telephony.DisconnectCause.OTASP_PROVISIONING_IN_PROCESS;
-                    break;
-            }
-            connection.setDisconnected(mDisconnectCauseFactory.toTelecomDisconnectCause(
-                    cause, e.getMessage(), phone.getPhoneId()));
-            connection.clearOriginalConnection();
-            connection.destroy();
+            handleCallStateException(e, connection, phone);
             return;
         }
 
@@ -1421,28 +1708,93 @@
                 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
                         Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
                 if (SubscriptionManager.isValidSubscriptionId(subId)) {
-                    intent.putExtra(PhoneConstants.SUBSCRIPTION_KEY, subId);
+                    SubscriptionManager.putSubscriptionIdExtra(intent, subId);
                 }
                 startActivity(intent);
             }
             Log.d(this, "placeOutgoingConnection, phone.dial returned null");
-            connection.setDisconnected(mDisconnectCauseFactory.toTelecomDisconnectCause(
-                    telephonyDisconnectCause, "Connection is null", phone.getPhoneId()));
-            connection.clearOriginalConnection();
-            connection.destroy();
+            connection.setTelephonyConnectionDisconnected(
+                    mDisconnectCauseFactory.toTelecomDisconnectCause(telephonyDisconnectCause,
+                            "Connection is null", phone.getPhoneId()));
+            connection.close();
         } else {
             connection.setOriginalConnection(originalConnection);
         }
     }
 
+    private boolean isVideoCallHoldAllowed(Phone phone) {
+         CarrierConfigManager cfgManager = (CarrierConfigManager)
+                phone.getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE);
+        if (cfgManager == null) {
+            // For some reason CarrierConfigManager is unavailable, return default
+            Log.w(this, "isVideoCallHoldAllowed: couldn't get CarrierConfigManager");
+            return true;
+        }
+        return cfgManager.getConfigForSubId(phone.getSubId()).getBoolean(
+                CarrierConfigManager.KEY_ALLOW_HOLD_VIDEO_CALL_BOOL, true);
+    }
+
+    private boolean shouldHoldForEmergencyCall(Phone phone) {
+        CarrierConfigManager cfgManager = (CarrierConfigManager)
+                phone.getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE);
+        if (cfgManager == null) {
+            // For some reason CarrierConfigManager is unavailable, return default
+            Log.w(this, "shouldHoldForEmergencyCall: couldn't get CarrierConfigManager");
+            return true;
+        }
+        return cfgManager.getConfigForSubId(phone.getSubId()).getBoolean(
+                CarrierConfigManager.KEY_ALLOW_HOLD_CALL_DURING_EMERGENCY_BOOL, true);
+    }
+
+    private void handleCallStateException(CallStateException e, TelephonyConnection connection,
+            Phone phone) {
+        int cause = android.telephony.DisconnectCause.OUTGOING_FAILURE;
+        switch (e.getError()) {
+            case CallStateException.ERROR_OUT_OF_SERVICE:
+                cause = android.telephony.DisconnectCause.OUT_OF_SERVICE;
+                break;
+            case CallStateException.ERROR_POWER_OFF:
+                 cause = android.telephony.DisconnectCause.POWER_OFF;
+                 break;
+            case CallStateException.ERROR_ALREADY_DIALING:
+                 cause = android.telephony.DisconnectCause.ALREADY_DIALING;
+                 break;
+            case CallStateException.ERROR_CALL_RINGING:
+                 cause = android.telephony.DisconnectCause.CANT_CALL_WHILE_RINGING;
+                 break;
+            case CallStateException.ERROR_CALLING_DISABLED:
+                 cause = android.telephony.DisconnectCause.CALLING_DISABLED;
+                 break;
+            case CallStateException.ERROR_TOO_MANY_CALLS:
+                 cause = android.telephony.DisconnectCause.TOO_MANY_ONGOING_CALLS;
+                 break;
+            case CallStateException.ERROR_OTASP_PROVISIONING_IN_PROCESS:
+                 cause = android.telephony.DisconnectCause.OTASP_PROVISIONING_IN_PROCESS;
+                 break;
+        }
+        connection.setTelephonyConnectionDisconnected(
+                DisconnectCauseUtil.toTelecomDisconnectCause(cause, e.getMessage(),
+                        phone.getPhoneId()));
+        connection.close();
+    }
+
+    private TelephonyConnection createConnectionFor(
+            Phone phone,
+            com.android.internal.telephony.Connection originalConnection,
+            boolean isOutgoing,
+            PhoneAccountHandle phoneAccountHandle,
+            String telecomCallId) {
+            return createConnectionFor(phone, originalConnection, isOutgoing, phoneAccountHandle,
+                    telecomCallId, false);
+    }
+
     private TelephonyConnection createConnectionFor(
             Phone phone,
             com.android.internal.telephony.Connection originalConnection,
             boolean isOutgoing,
             PhoneAccountHandle phoneAccountHandle,
             String telecomCallId,
-            Uri address,
-            int videoState) {
+            boolean isAdhocConference) {
         TelephonyConnection returnConnection = null;
         int phoneType = phone.getPhoneType();
         if (phoneType == TelephonyManager.PHONE_TYPE_GSM) {
@@ -1453,8 +1805,10 @@
                     allowsMute, isOutgoing, telecomCallId);
         }
         if (returnConnection != null) {
-            // Listen to Telephony specific callbacks from the connection
-            returnConnection.addTelephonyConnectionListener(mTelephonyConnectionListener);
+            if (!isAdhocConference) {
+                // Listen to Telephony specific callbacks from the connection
+                returnConnection.addTelephonyConnectionListener(mTelephonyConnectionListener);
+            }
             returnConnection.setVideoPauseSupported(
                     TelecomAccountRegistry.getInstance(this).isVideoPauseSupported(
                             phoneAccountHandle));
@@ -1464,21 +1818,27 @@
             returnConnection.setShowPreciseFailedCause(
                     TelecomAccountRegistry.getInstance(this).isShowPreciseFailedCause(
                             phoneAccountHandle));
+            returnConnection.setTelephonyConnectionService(this);
         }
         return returnConnection;
     }
 
     private boolean isOriginalConnectionKnown(
             com.android.internal.telephony.Connection originalConnection) {
+        return (getConnectionForOriginalConnection(originalConnection) != null);
+    }
+
+    private TelephonyConnection getConnectionForOriginalConnection(
+            com.android.internal.telephony.Connection originalConnection) {
         for (Connection connection : getAllConnections()) {
             if (connection instanceof TelephonyConnection) {
                 TelephonyConnection telephonyConnection = (TelephonyConnection) connection;
                 if (telephonyConnection.getOriginalConnection() == originalConnection) {
-                    return true;
+                    return telephonyConnection;
                 }
             }
         }
-        return false;
+        return null;
     }
 
     /**
@@ -1511,13 +1871,22 @@
         return chosenPhone;
     }
 
-    private CompletableFuture<Boolean> delayDialForDdsSwitch(Phone phone) {
+    /**
+     * If needed, block until the the default data is is switched for outgoing emergency call, or
+     * timeout expires.
+     */
+    private boolean delayDialForDdsSwitch(Phone phone) {
         if (phone == null) {
-            return CompletableFuture.completedFuture(Boolean.TRUE);
+            return true;
         }
-        return possiblyOverrideDefaultDataForEmergencyCall(phone)
-                .completeOnTimeout(false, DEFAULT_DATA_SWITCH_TIMEOUT_MS,
-                        TimeUnit.MILLISECONDS);
+        try {
+            return possiblyOverrideDefaultDataForEmergencyCall(phone).get(
+                    DEFAULT_DATA_SWITCH_TIMEOUT_MS, TimeUnit.MILLISECONDS);
+        } catch (Exception e) {
+            Log.w(this, "delayDialForDdsSwitch - exception= "
+                    + e.getMessage());
+            return false;
+        }
     }
 
     /**
@@ -1721,6 +2090,8 @@
             // 4)
             // Report Slot's PIN/PUK lock status for sorting later.
             int simState = mSubscriptionManagerProxy.getSimStateForSlotIdx(i);
+            // Record SimState.
+            status.simState = simState;
             if (simState == TelephonyManager.SIM_STATE_PIN_REQUIRED ||
                     simState == TelephonyManager.SIM_STATE_PUK_REQUIRED) {
                 status.isLocked = true;
@@ -1766,6 +2137,15 @@
                         if (o1.hasDialedEmergencyNumber && !o2.hasDialedEmergencyNumber) {
                             return 1;
                         }
+                        // Sort by non-absent SIM.
+                        if (o1.simState == TelephonyManager.SIM_STATE_ABSENT
+                                && o2.simState != TelephonyManager.SIM_STATE_ABSENT) {
+                            return -1;
+                        }
+                        if (o2.simState == TelephonyManager.SIM_STATE_ABSENT
+                                && o1.simState != TelephonyManager.SIM_STATE_ABSENT) {
+                            return 1;
+                        }
                         // First start by seeing if either of the phone slots are locked. If they
                         // are, then sort by non-locked SIM first. If they are both locked, sort
                         // by capability instead.
@@ -1776,30 +2156,24 @@
                             return 1;
                         }
                         // sort by number of RadioAccessFamily Capabilities.
-                        int compare = Integer.bitCount(o1.capabilities) -
-                                Integer.bitCount(o2.capabilities);
+                        int compare = RadioAccessFamily.compare(o1.capabilities, o2.capabilities);
                         if (compare == 0) {
-                            // Sort by highest RAF Capability if the number is the same.
-                            compare = RadioAccessFamily.getHighestRafCapability(o1.capabilities) -
-                                    RadioAccessFamily.getHighestRafCapability(o2.capabilities);
-                            if (compare == 0) {
-                                if (firstOccupiedSlot != null) {
-                                    // If the RAF capability is the same, choose based on whether or
-                                    // not any of the slots are occupied with a SIM card (if both
-                                    // are, always choose the first).
-                                    if (o1.slotId == firstOccupiedSlot.getPhoneId()) {
-                                        return 1;
-                                    } else if (o2.slotId == firstOccupiedSlot.getPhoneId()) {
-                                        return -1;
-                                    }
-                                } else {
-                                    // No slots have SIMs detected in them, so weight the default
-                                    // Phone Id greater than the others.
-                                    if (o1.slotId == defaultPhoneId) {
-                                        return 1;
-                                    } else if (o2.slotId == defaultPhoneId) {
-                                        return -1;
-                                    }
+                            if (firstOccupiedSlot != null) {
+                                // If the RAF capability is the same, choose based on whether or
+                                // not any of the slots are occupied with a SIM card (if both
+                                // are, always choose the first).
+                                if (o1.slotId == firstOccupiedSlot.getPhoneId()) {
+                                    return 1;
+                                } else if (o2.slotId == firstOccupiedSlot.getPhoneId()) {
+                                    return -1;
+                                }
+                            } else {
+                                // No slots have SIMs detected in them, so weight the default
+                                // Phone Id greater than the others.
+                                if (o1.slotId == defaultPhoneId) {
+                                    return 1;
+                                } else if (o2.slotId == defaultPhoneId) {
+                                    return -1;
                                 }
                             }
                         }
@@ -1843,13 +2217,8 @@
         return true;
     }
 
-    @Override
-    public void removeConnection(Connection connection) {
-        super.removeConnection(connection);
-        if (connection instanceof TelephonyConnection) {
-            TelephonyConnection telephonyConnection = (TelephonyConnection) connection;
-            telephonyConnection.removeTelephonyConnectionListener(mTelephonyConnectionListener);
-        }
+    TelephonyConnection.TelephonyConnectionListener getTelephonyConnectionListener() {
+        return mTelephonyConnectionListener;
     }
 
     /**
@@ -1909,7 +2278,8 @@
 
                     // If the CDMA conference has not been merged, add-call will not work, so fail
                     // this request to add a call.
-                    if (cdmaConf.can(Connection.CAPABILITY_MERGE_CONFERENCE)) {
+                    if ((cdmaConf.getConnectionCapabilities()
+                            & Connection.CAPABILITY_MERGE_CONFERENCE) != 0) {
                         return Connection.createFailedConnection(new DisconnectCause(
                                     DisconnectCause.RESTRICTED,
                                     null,
@@ -1943,7 +2313,7 @@
                 // are potentially placing an international call on WFC.
                 Log.i(this, "placeOutgoingConnection - sending international call on WFC " +
                         "confirmation event");
-                telephonyConnection.sendConnectionEvent(
+                telephonyConnection.sendTelephonyConnectionEvent(
                         TelephonyManager.EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC, null);
             }
         }
@@ -1959,4 +2329,26 @@
             }
         }
     }
+
+    private void closeOrDestroyConnection(Connection connection, DisconnectCause cause) {
+        if (connection instanceof TelephonyConnection) {
+            TelephonyConnection telephonyConnection = (TelephonyConnection) connection;
+            telephonyConnection.setTelephonyConnectionDisconnected(cause);
+            // Close destroys the connection and notifies TelephonyConnection listeners.
+            telephonyConnection.close();
+        } else {
+            connection.setDisconnected(cause);
+            connection.destroy();
+        }
+    }
+
+    /**
+     * Adds a {@link Conference} to the telephony ConnectionService and registers a listener for
+     * changes to the conference.  Should be used instead of {@link #addConference(Conference)}.
+     * @param conference The conference.
+     */
+    public void addTelephonyConference(@NonNull TelephonyConferenceBase conference) {
+        addConference(conference);
+        conference.addTelephonyConferenceListener(mTelephonyConferenceListener);
+    }
 }
diff --git a/src/com/android/services/telephony/TelephonyConnectionServiceProxy.java b/src/com/android/services/telephony/TelephonyConnectionServiceProxy.java
index 1ced34a..6c29bd2 100644
--- a/src/com/android/services/telephony/TelephonyConnectionServiceProxy.java
+++ b/src/com/android/services/telephony/TelephonyConnectionServiceProxy.java
@@ -30,7 +30,6 @@
     Collection<Connection> getAllConnections();
     void addConference(TelephonyConference mTelephonyConference);
     void addConference(ImsConference mImsConference);
-    void removeConnection(Connection connection);
     void addExistingConnection(PhoneAccountHandle phoneAccountHandle,
             Connection connection);
     void addExistingConnection(PhoneAccountHandle phoneAccountHandle,
diff --git a/src/com/android/services/telephony/rcs/RcsFeatureController.java b/src/com/android/services/telephony/rcs/RcsFeatureController.java
new file mode 100644
index 0000000..5094c57
--- /dev/null
+++ b/src/com/android/services/telephony/rcs/RcsFeatureController.java
@@ -0,0 +1,443 @@
+/*
+ * Copyright (C) 2020 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.services.telephony.rcs;
+
+import android.annotation.AnyThread;
+import android.content.Context;
+import android.net.Uri;
+import android.telephony.ims.ImsException;
+import android.telephony.ims.ImsRcsManager;
+import android.telephony.ims.ImsReasonInfo;
+import android.telephony.ims.RegistrationManager;
+import android.telephony.ims.aidl.IImsCapabilityCallback;
+import android.telephony.ims.aidl.IImsRegistrationCallback;
+import android.telephony.ims.stub.ImsRegistrationImplBase;
+import android.util.ArrayMap;
+import android.util.Log;
+
+import com.android.ims.FeatureConnector;
+import com.android.ims.IFeatureConnector;
+import com.android.ims.RcsFeatureManager;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.imsphone.ImsRegistrationCallbackHelper;
+import com.android.internal.util.IndentingPrintWriter;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.Map;
+import java.util.concurrent.Executor;
+import java.util.function.Consumer;
+
+/**
+ * Contains the RCS feature implementations that are associated with this slot's RcsFeature.
+ */
+@AnyThread
+public class RcsFeatureController {
+    private static final String LOG_TAG = "RcsFeatureController";
+
+    /**
+     * Interface used by RCS features that need to listen for when the associated service has been
+     * connected.
+     */
+    public interface Feature {
+        /**
+         * The RcsFeature has been connected to the framework and is ready.
+         */
+        void onRcsConnected(RcsFeatureManager manager);
+
+        /**
+         * The framework has lost the binding to the RcsFeature or it is in the process of changing.
+         */
+        void onRcsDisconnected();
+
+        /**
+         * The subscription associated with the slot this controller is bound to has changed or its
+         * carrier configuration has changed.
+         */
+        void onAssociatedSubscriptionUpdated(int subId);
+
+        /**
+         * Called when the feature should be destroyed.
+         */
+        void onDestroy();
+    }
+
+    /**
+     * Used to inject FeatureConnector instances for testing.
+     */
+    @VisibleForTesting
+    public interface FeatureConnectorFactory<T extends IFeatureConnector> {
+        /**
+         * @return a {@link FeatureConnector} associated for the given {@link IFeatureConnector}
+         * and slot id.
+         */
+        FeatureConnector<T> create(Context context, int slotId,
+                FeatureConnector.Listener<T> listener, Executor executor, String tag);
+    }
+
+    /**
+     * Used to inject ImsRegistrationCallbackHelper instances for testing.
+     */
+    @VisibleForTesting
+    public interface RegistrationHelperFactory {
+        /**
+         * @return an {@link ImsRegistrationCallbackHelper}, which helps manage IMS registration
+         * state.
+         */
+        ImsRegistrationCallbackHelper create(
+                ImsRegistrationCallbackHelper.ImsRegistrationUpdate cb, Executor executor);
+    }
+
+    private FeatureConnectorFactory<RcsFeatureManager> mFeatureFactory = FeatureConnector::new;
+    private RegistrationHelperFactory mRegistrationHelperFactory =
+            ImsRegistrationCallbackHelper::new;
+
+    private final Map<Class<?>, Feature> mFeatures = new ArrayMap<>();
+    private final Context mContext;
+    private final ImsRegistrationCallbackHelper mImsRcsRegistrationHelper;
+    private final int mSlotId;
+    private final Object mLock = new Object();
+    private FeatureConnector<RcsFeatureManager> mFeatureConnector;
+    private RcsFeatureManager mFeatureManager;
+
+    private FeatureConnector.Listener<RcsFeatureManager> mFeatureConnectorListener =
+            new FeatureConnector.Listener<RcsFeatureManager>() {
+                @Override
+                public RcsFeatureManager getFeatureManager() {
+                    return new RcsFeatureManager(mContext, mSlotId);
+                }
+
+                @Override
+                public void connectionReady(RcsFeatureManager manager)
+                        throws com.android.ims.ImsException {
+                    if (manager == null) {
+                        logw("connectionReady returned null RcsFeatureManager");
+                        return;
+                    }
+                    try {
+                        // May throw ImsException if for some reason the connection to the
+                        // ImsService is gone.
+                        setupConnectionToService(manager);
+                    } catch (ImsException e) {
+                        // Use deprecated Exception for compatibility.
+                        throw new com.android.ims.ImsException(e.getMessage(),
+                                ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN);
+                    }
+                    updateConnectionStatus(manager);
+                }
+
+                @Override
+                public void connectionUnavailable() {
+                    // Call before disabling connection to manager.
+                    removeConnectionToService();
+                    updateConnectionStatus(null /*manager*/);
+                }
+            };
+
+    private ImsRegistrationCallbackHelper.ImsRegistrationUpdate mRcsRegistrationUpdate = new
+            ImsRegistrationCallbackHelper.ImsRegistrationUpdate() {
+                @Override
+                public void handleImsRegistered(int imsRadioTech) {
+                }
+
+                @Override
+                public void handleImsRegistering(int imsRadioTech) {
+                }
+
+                @Override
+                public void handleImsUnregistered(ImsReasonInfo imsReasonInfo) {
+                }
+
+                @Override
+                public void handleImsSubscriberAssociatedUriChanged(Uri[] uris) {
+                }
+            };
+
+    public RcsFeatureController(Context context, int slotId) {
+        mContext = context;
+        mSlotId = slotId;
+        mImsRcsRegistrationHelper = mRegistrationHelperFactory.create(mRcsRegistrationUpdate,
+                mContext.getMainExecutor());
+    }
+
+    /**
+     * Should only be used to inject registration helpers for testing.
+     */
+    @VisibleForTesting
+    public RcsFeatureController(Context context, int slotId, RegistrationHelperFactory f) {
+        mContext = context;
+        mSlotId = slotId;
+        mRegistrationHelperFactory = f;
+        mImsRcsRegistrationHelper = mRegistrationHelperFactory.create(mRcsRegistrationUpdate,
+                mContext.getMainExecutor());
+    }
+
+    /**
+     * This method should be called after constructing an instance of this class to start the
+     * connection process to the associated RcsFeature.
+     */
+    public void connect() {
+        synchronized (mLock) {
+            if (mFeatureConnector != null) return;
+            mFeatureConnector = mFeatureFactory.create(mContext, mSlotId, mFeatureConnectorListener,
+                    mContext.getMainExecutor(), LOG_TAG);
+            mFeatureConnector.connect();
+        }
+    }
+
+    /**
+     * Adds a {@link Feature} to be tracked by this FeatureController.
+     */
+    public <T extends Feature> void addFeature(T connector, Class<T> clazz) {
+        synchronized (mLock) {
+            mFeatures.put(clazz, connector);
+        }
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager != null) {
+            connector.onRcsConnected(manager);
+        } else {
+            connector.onRcsDisconnected();
+        }
+    }
+
+    /**
+     * @return The RCS feature implementation tracked by this controller.
+     */
+    @SuppressWarnings("unchecked")
+    public <T> T getFeature(Class<T> clazz) {
+        synchronized (mLock) {
+            return (T) mFeatures.get(clazz);
+        }
+    }
+
+    /**
+     * Removes the feature associated with this class.
+     */
+    public <T> void removeFeature(Class<T> clazz) {
+        synchronized (mLock) {
+            RcsFeatureController.Feature feature = mFeatures.remove(clazz);
+            feature.onDestroy();
+        }
+    }
+
+    /**
+     * @return true if this controller has features it is actively tracking.
+     */
+    public boolean hasActiveFeatures() {
+        synchronized (mLock) {
+            return mFeatures.size() > 0;
+        }
+    }
+
+    /**
+     * Update the subscription associated with this controller.
+     */
+    public void updateAssociatedSubscription(int newSubId) {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager != null) {
+            try {
+                manager.updateCapabilities();
+            } catch (ImsException e) {
+                Log.w(LOG_TAG, "associatedSubscriptionChanged failed:" + e);
+            }
+        }
+        synchronized (mLock) {
+            for (Feature c : mFeatures.values()) {
+                c.onAssociatedSubscriptionUpdated(newSubId);
+            }
+        }
+    }
+
+    /**
+     * Call before this controller is destroyed to tear down associated features.
+     */
+    public void destroy() {
+        synchronized (mLock) {
+            Log.i(LOG_TAG, "destroy: slotId=" + mSlotId);
+            if (mFeatureConnector != null) {
+                mFeatureConnector.disconnect();
+            }
+            for (Feature c : mFeatures.values()) {
+                c.onRcsDisconnected();
+                c.onDestroy();
+            }
+            mFeatures.clear();
+        }
+    }
+
+    @VisibleForTesting
+    public void setFeatureConnectorFactory(FeatureConnectorFactory factory) {
+        mFeatureFactory = factory;
+    }
+
+    /**
+     * Add a {@link RegistrationManager.RegistrationCallback} callback that gets called when IMS
+     * registration has changed for a specific subscription.
+     */
+    public void registerImsRegistrationCallback(int subId, IImsRegistrationCallback callback)
+            throws ImsException {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager == null) {
+            throw new ImsException("Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+        manager.registerImsRegistrationCallback(subId, callback);
+    }
+
+    /**
+     * Removes a previously registered {@link RegistrationManager.RegistrationCallback} callback
+     * that is associated with a specific subscription.
+     */
+    public void unregisterImsRegistrationCallback(int subId, IImsRegistrationCallback callback) {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager != null) {
+            manager.unregisterImsRegistrationCallback(subId, callback);
+        }
+    }
+
+    /**
+     * Register an {@link ImsRcsManager.AvailabilityCallback} with the associated RcsFeature,
+     * which will provide availability updates.
+     */
+    public void registerRcsAvailabilityCallback(int subId, IImsCapabilityCallback callback)
+            throws ImsException {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager == null) {
+            throw new ImsException("Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+        manager.registerRcsAvailabilityCallback(subId, callback);
+    }
+
+    /**
+     * Remove a registered {@link ImsRcsManager.AvailabilityCallback} from the RcsFeature.
+     */
+    public void unregisterRcsAvailabilityCallback(int subId, IImsCapabilityCallback callback) {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager != null) {
+            manager.unregisterRcsAvailabilityCallback(subId, callback);
+        }
+    }
+
+    /**
+     * Query for the specific capability.
+     */
+    public boolean isCapable(int capability, int radioTech)
+            throws android.telephony.ims.ImsException {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager == null) {
+            throw new ImsException("Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+        return manager.isCapable(capability, radioTech);
+    }
+
+    /**
+     * Query the availability of an IMS RCS capability.
+     */
+    public boolean isAvailable(int capability) throws android.telephony.ims.ImsException {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager == null) {
+            throw new ImsException("Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+        return manager.isAvailable(capability);
+    }
+
+    /**
+     * Get the IMS RCS registration technology for this Phone.
+     */
+    public void getRegistrationTech(Consumer<Integer> callback) {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager != null) {
+            manager.getImsRegistrationTech(callback);
+        }
+        callback.accept(ImsRegistrationImplBase.REGISTRATION_TECH_NONE);
+    }
+
+    /**
+     * Retrieve the current RCS registration state.
+     */
+    public void getRegistrationState(Consumer<Integer> callback) {
+        callback.accept(mImsRcsRegistrationHelper.getImsRegistrationState());
+    }
+
+    private void setupConnectionToService(RcsFeatureManager manager) throws ImsException {
+        // Open persistent listener connection, sends RcsFeature#onFeatureReady.
+        manager.openConnection();
+        manager.updateCapabilities();
+        manager.registerImsRegistrationCallback(mImsRcsRegistrationHelper.getCallbackBinder());
+    }
+
+    private void removeConnectionToService() {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager != null) {
+            manager.unregisterImsRegistrationCallback(
+                    mImsRcsRegistrationHelper.getCallbackBinder());
+            // Remove persistent listener connection.
+            manager.releaseConnection();
+        }
+        mImsRcsRegistrationHelper.reset();
+    }
+
+    private void updateConnectionStatus(RcsFeatureManager manager) {
+        synchronized (mLock) {
+            mFeatureManager = manager;
+            if (mFeatureManager != null) {
+                for (Feature c : mFeatures.values()) {
+                    c.onRcsConnected(manager);
+                }
+            } else {
+                for (Feature c : mFeatures.values()) {
+                    c.onRcsDisconnected();
+                }
+            }
+        }
+    }
+
+    private RcsFeatureManager getFeatureManager() {
+        synchronized (mLock) {
+            return mFeatureManager;
+        }
+    }
+
+    /**
+     * Dump this controller's instance information for usage in dumpsys.
+     */
+    public void dump(FileDescriptor fd, PrintWriter printWriter, String[] args) {
+        IndentingPrintWriter pw = new IndentingPrintWriter(printWriter, "  ");
+        pw.print("slotId=");
+        pw.println(mSlotId);
+        pw.print("RegistrationState=");
+        pw.println(mImsRcsRegistrationHelper.getImsRegistrationState());
+        pw.print("connected=");
+        synchronized (mLock) {
+            pw.println(mFeatureManager != null);
+        }
+    }
+
+    private void logw(String log) {
+        Log.w(LOG_TAG, getLogPrefix().append(log).toString());
+    }
+
+    private StringBuilder getLogPrefix() {
+        StringBuilder sb = new StringBuilder("[");
+        sb.append(mSlotId);
+        sb.append("] ");
+        return sb;
+    }
+}
diff --git a/src/com/android/services/telephony/rcs/TelephonyRcsService.java b/src/com/android/services/telephony/rcs/TelephonyRcsService.java
new file mode 100644
index 0000000..c85e9a9
--- /dev/null
+++ b/src/com/android/services/telephony/rcs/TelephonyRcsService.java
@@ -0,0 +1,284 @@
+/*
+ * Copyright (C) 2020 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.services.telephony.rcs;
+
+import android.annotation.AnyThread;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.util.Log;
+import android.util.SparseArray;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.PhoneConfigurationManager;
+import com.android.internal.util.IndentingPrintWriter;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+
+/**
+ * Singleton service setup to manage RCS related services that the platform provides such as User
+ * Capability Exchange.
+ */
+@AnyThread
+public class TelephonyRcsService {
+
+    private static final String LOG_TAG = "TelephonyRcsService";
+
+    /**
+     * Used to inject RcsFeatureController and UserCapabilityExchangeImpl instances for testing.
+     */
+    @VisibleForTesting
+    public interface FeatureFactory {
+        /**
+         * @return an {@link RcsFeatureController} assoicated with the slot specified.
+         */
+        RcsFeatureController createController(Context context, int slotId);
+
+        /**
+         * @return an instance of {@link UserCapabilityExchangeImpl} associated with the slot
+         * specified.
+         */
+        UserCapabilityExchangeImpl createUserCapabilityExchange(Context context, int slotId,
+                int subId);
+    }
+
+    private FeatureFactory mFeatureFactory = new FeatureFactory() {
+        @Override
+        public RcsFeatureController createController(Context context, int slotId) {
+            return new RcsFeatureController(context, slotId);
+        }
+
+        @Override
+        public UserCapabilityExchangeImpl createUserCapabilityExchange(Context context, int slotId,
+                int subId) {
+            return new UserCapabilityExchangeImpl(context, slotId, subId);
+        }
+    };
+
+    // Notifies this service that there has been a change in available slots.
+    private static final int HANDLER_MSIM_CONFIGURATION_CHANGE = 1;
+
+    private final Context mContext;
+    private final Object mLock = new Object();
+    private int mNumSlots;
+
+    // Maps slot ID -> RcsFeatureController.
+    private SparseArray<RcsFeatureController> mFeatureControllers;
+
+    private BroadcastReceiver mCarrierConfigChangedReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (intent == null) {
+                return;
+            }
+            if (CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED.equals(intent.getAction())) {
+                Bundle bundle = intent.getExtras();
+                if (bundle == null) {
+                    return;
+                }
+                int slotId = bundle.getInt(CarrierConfigManager.EXTRA_SLOT_INDEX,
+                        SubscriptionManager.INVALID_PHONE_INDEX);
+                int subId = bundle.getInt(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX,
+                        SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+                updateFeatureControllerSubscription(slotId, subId);
+            }
+        }
+    };
+
+    private Handler mHandler = new Handler(Looper.getMainLooper(), (msg) -> {
+        switch (msg.what) {
+            case HANDLER_MSIM_CONFIGURATION_CHANGE: {
+                AsyncResult result = (AsyncResult) msg.obj;
+                Integer numSlots = (Integer) result.result;
+                if (numSlots == null) {
+                    Log.w(LOG_TAG, "msim config change with null num slots.");
+                    break;
+                }
+                updateFeatureControllerSize(numSlots);
+                break;
+            }
+            default:
+                return false;
+        }
+        return true;
+    });
+
+    public TelephonyRcsService(Context context, int numSlots) {
+        mContext = context;
+        mNumSlots = numSlots;
+        mFeatureControllers = new SparseArray<>(numSlots);
+    }
+
+    /**
+     * @return the {@link RcsFeatureController} associated with the given slot.
+     */
+    public RcsFeatureController getFeatureController(int slotId) {
+        synchronized (mLock) {
+            return mFeatureControllers.get(slotId);
+        }
+    }
+
+    /**
+     * Called after instance creation to initialize internal structures as well as register for
+     * system callbacks.
+     */
+    public void initialize() {
+        updateFeatureControllerSize(mNumSlots);
+
+        PhoneConfigurationManager.registerForMultiSimConfigChange(mHandler,
+                HANDLER_MSIM_CONFIGURATION_CHANGE, null);
+        mContext.registerReceiver(mCarrierConfigChangedReceiver, new IntentFilter(
+                CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED));
+    }
+
+    @VisibleForTesting
+    public void setFeatureFactory(FeatureFactory f) {
+        mFeatureFactory = f;
+    }
+
+    /**
+     * Update the number of {@link RcsFeatureController}s that are created based on the number of
+     * active slots on the device.
+     */
+    @VisibleForTesting
+    public void updateFeatureControllerSize(int newNumSlots) {
+        synchronized (mLock) {
+            int oldNumSlots = mFeatureControllers.size();
+            if (oldNumSlots == newNumSlots) {
+                return;
+            }
+            Log.i(LOG_TAG, "updateFeatureControllers: oldSlots=" + oldNumSlots + ", newNumSlots="
+                    + newNumSlots);
+            mNumSlots = newNumSlots;
+            if (oldNumSlots < newNumSlots) {
+                for (int i = oldNumSlots; i < newNumSlots; i++) {
+                    RcsFeatureController c = constructFeatureController(i);
+                    // Do not add feature controllers for inactive subscriptions
+                    if (c.hasActiveFeatures()) {
+                        mFeatureControllers.put(i, c);
+                    }
+                }
+            } else {
+                for (int i = (oldNumSlots - 1); i > (newNumSlots - 1); i--) {
+                    RcsFeatureController c = mFeatureControllers.get(i);
+                    if (c != null) {
+                        mFeatureControllers.remove(i);
+                        c.destroy();
+                    }
+                }
+            }
+        }
+    }
+
+    private void updateFeatureControllerSubscription(int slotId, int newSubId) {
+        synchronized (mLock) {
+            RcsFeatureController f = mFeatureControllers.get(slotId);
+            Log.i(LOG_TAG, "updateFeatureControllerSubscription: slotId=" + slotId + " newSubId="
+                    + newSubId + ", existing feature=" + (f != null));
+            if (SubscriptionManager.isValidSubscriptionId(newSubId)) {
+                if (f == null) {
+                    // A controller doesn't exist for this slot yet.
+                    f = mFeatureFactory.createController(mContext, slotId);
+                    updateSupportedFeatures(f, slotId, newSubId);
+                    if (f.hasActiveFeatures()) mFeatureControllers.put(slotId, f);
+                } else {
+                    updateSupportedFeatures(f, slotId, newSubId);
+                    // Do not keep an empty container around.
+                    if (!f.hasActiveFeatures()) {
+                        f.destroy();
+                        mFeatureControllers.remove(slotId);
+                    }
+                }
+            }
+            if (f != null) f.updateAssociatedSubscription(newSubId);
+        }
+    }
+
+    private RcsFeatureController constructFeatureController(int slotId) {
+        RcsFeatureController c = mFeatureFactory.createController(mContext, slotId);
+        int subId = getSubscriptionFromSlot(slotId);
+        updateSupportedFeatures(c, slotId, subId);
+        return c;
+    }
+
+    private void updateSupportedFeatures(RcsFeatureController c, int slotId, int subId) {
+        if (doesSubscriptionSupportPresence(subId)) {
+            if (c.getFeature(UserCapabilityExchangeImpl.class) == null) {
+                c.addFeature(mFeatureFactory.createUserCapabilityExchange(mContext, slotId, subId),
+                        UserCapabilityExchangeImpl.class);
+            }
+        } else {
+            if (c.getFeature(UserCapabilityExchangeImpl.class) != null) {
+                c.removeFeature(UserCapabilityExchangeImpl.class);
+            }
+        }
+        // Only start the connection procedure if we have active features.
+        if (c.hasActiveFeatures()) c.connect();
+    }
+
+    private boolean doesSubscriptionSupportPresence(int subId) {
+        if (!SubscriptionManager.isValidSubscriptionId(subId)) return false;
+        CarrierConfigManager carrierConfigManager =
+                mContext.getSystemService(CarrierConfigManager.class);
+        if (carrierConfigManager == null) return false;
+        boolean supportsUce = carrierConfigManager.getConfigForSubId(subId).getBoolean(
+                CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL);
+        supportsUce |= carrierConfigManager.getConfigForSubId(subId).getBoolean(
+                CarrierConfigManager.KEY_USE_RCS_SIP_OPTIONS_BOOL);
+        return supportsUce;
+    }
+
+
+    private int getSubscriptionFromSlot(int slotId) {
+        SubscriptionManager manager = mContext.getSystemService(SubscriptionManager.class);
+        if (manager == null) {
+            Log.w(LOG_TAG, "Couldn't find SubscriptionManager for slotId=" + slotId);
+            return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+        }
+        int[] subIds = manager.getSubscriptionIds(slotId);
+        if (subIds != null && subIds.length > 0) {
+            return subIds[0];
+        }
+        return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+    }
+
+    /**
+     * Dump this instance into a readable format for dumpsys usage.
+     */
+    public void dump(FileDescriptor fd, PrintWriter printWriter, String[] args) {
+        IndentingPrintWriter pw = new IndentingPrintWriter(printWriter, "  ");
+        pw.println("RcsFeatureControllers:");
+        pw.increaseIndent();
+        synchronized (mLock) {
+            for (int i = 0; i < mNumSlots; i++) {
+                RcsFeatureController f = mFeatureControllers.get(i);
+                pw.increaseIndent();
+                f.dump(fd, printWriter, args);
+                pw.decreaseIndent();
+            }
+        }
+        pw.decreaseIndent();
+    }
+}
diff --git a/src/com/android/services/telephony/rcs/UserCapabilityExchangeImpl.java b/src/com/android/services/telephony/rcs/UserCapabilityExchangeImpl.java
new file mode 100644
index 0000000..ac8f9bf
--- /dev/null
+++ b/src/com/android/services/telephony/rcs/UserCapabilityExchangeImpl.java
@@ -0,0 +1,293 @@
+/*
+ * Copyright (C) 2020 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.services.telephony.rcs;
+
+import android.content.Context;
+import android.net.Uri;
+import android.os.RemoteException;
+import android.telephony.ims.RcsContactUceCapability;
+import android.telephony.ims.RcsUceAdapter;
+import android.telephony.ims.aidl.IRcsUceControllerCallback;
+import android.util.Log;
+
+import com.android.ims.RcsFeatureManager;
+import com.android.ims.ResultCode;
+import com.android.phone.R;
+import com.android.service.ims.presence.ContactCapabilityResponse;
+import com.android.service.ims.presence.PresenceBase;
+import com.android.service.ims.presence.PresencePublication;
+import com.android.service.ims.presence.PresencePublisher;
+import com.android.service.ims.presence.PresenceSubscriber;
+import com.android.service.ims.presence.SubscribePublisher;
+
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
+
+/**
+ * Implements User Capability Exchange using Presence.
+ */
+public class UserCapabilityExchangeImpl implements RcsFeatureController.Feature, SubscribePublisher,
+        PresencePublisher {
+
+    private static final String LOG_TAG = "RcsUceImpl";
+
+    private int mSlotId;
+    private int mSubId;
+
+    private final PresencePublication mPresencePublication;
+    private final PresenceSubscriber mPresenceSubscriber;
+
+    private final ConcurrentHashMap<Integer, IRcsUceControllerCallback> mPendingCapabilityRequests =
+            new ConcurrentHashMap<>();
+
+    UserCapabilityExchangeImpl(Context context, int slotId, int subId) {
+        mSlotId = slotId;
+        mSubId = subId;
+        logi("created");
+
+        String[] volteError = context.getResources().getStringArray(
+                R.array.config_volte_provision_error_on_publish_response);
+        String[] rcsError = context.getResources().getStringArray(
+                R.array.config_rcs_provision_error_on_publish_response);
+
+        // Initialize PresencePublication
+        mPresencePublication = new PresencePublication(null /*PresencePublisher*/, context,
+                volteError, rcsError);
+        // Initialize PresenceSubscriber
+        mPresenceSubscriber = new PresenceSubscriber(null /*SubscribePublisher*/, context,
+                volteError, rcsError);
+
+        onAssociatedSubscriptionUpdated(mSubId);
+    }
+
+
+    // Runs on main thread.
+    @Override
+    public void onRcsConnected(RcsFeatureManager rcsFeatureManager) {
+        logi("onRcsConnected");
+        mPresencePublication.updatePresencePublisher(this);
+        mPresenceSubscriber.updatePresenceSubscriber(this);
+    }
+
+    // Runs on main thread.
+    @Override
+    public void onRcsDisconnected() {
+        logi("onRcsDisconnected");
+        mPresencePublication.removePresencePublisher();
+        mPresenceSubscriber.removePresenceSubscriber();
+    }
+
+    // Runs on main thread.
+    @Override
+    public void onAssociatedSubscriptionUpdated(int subId) {
+        mPresencePublication.handleAssociatedSubscriptionChanged(subId);
+        mPresenceSubscriber.handleAssociatedSubscriptionChanged(subId);
+    }
+
+    /**
+     * Should be called before destroying this instance.
+     * This instance is not usable after this method is called.
+     */
+    // Called on main thread.
+    public void onDestroy() {
+        onRcsDisconnected();
+    }
+
+    /**
+     * @return the UCE Publish state.
+     */
+    // May happen on a Binder thread, PresencePublication locks to get result.
+    public int getUcePublishState() {
+        int publishState = mPresencePublication.getPublishState();
+        return toUcePublishState(publishState);
+    }
+
+    /**
+     * Perform a capabilities request and call {@link IRcsUceControllerCallback} with the result.
+     */
+    // May happen on a Binder thread, PresenceSubscriber locks when requesting Capabilities.
+    public void requestCapabilities(List<Uri> contactNumbers, IRcsUceControllerCallback c) {
+        List<String> numbers = contactNumbers.stream()
+                .map(UserCapabilityExchangeImpl::getNumberFromUri).collect(Collectors.toList());
+        int taskId = mPresenceSubscriber.requestCapability(numbers,
+                new ContactCapabilityResponse() {
+                    @Override
+                    public void onSuccess(int reqId) {
+                        logi("onSuccess called for reqId:" + reqId);
+                    }
+
+                    @Override
+                    public void onError(int reqId, int resultCode) {
+                        IRcsUceControllerCallback c = mPendingCapabilityRequests.remove(reqId);
+                        try {
+                            if (c != null) {
+                                c.onError(toUceError(resultCode));
+                            } else {
+                                logw("onError called for unknown reqId:" + reqId);
+                            }
+                        } catch (RemoteException e) {
+                            logi("Calling back to dead service");
+                        }
+                    }
+
+                    @Override
+                    public void onFinish(int reqId) {
+                        logi("onFinish called for reqId:" + reqId);
+                    }
+
+                    @Override
+                    public void onTimeout(int reqId) {
+                        IRcsUceControllerCallback c = mPendingCapabilityRequests.remove(reqId);
+                        try {
+                            if (c != null) {
+                                c.onError(RcsUceAdapter.ERROR_REQUEST_TIMEOUT);
+                            } else {
+                                logw("onTimeout called for unknown reqId:" + reqId);
+                            }
+                        } catch (RemoteException e) {
+                            logi("Calling back to dead service");
+                        }
+                    }
+
+                    @Override
+                    public void onCapabilitiesUpdated(int reqId,
+                            List<RcsContactUceCapability> contactCapabilities,
+                            boolean updateLastTimestamp) {
+                        IRcsUceControllerCallback c = mPendingCapabilityRequests.remove(reqId);
+                        try {
+                            if (c != null) {
+                                c.onCapabilitiesReceived(contactCapabilities);
+                            } else {
+                                logw("onCapabilitiesUpdated, unknown reqId:" + reqId);
+                            }
+                        } catch (RemoteException e) {
+                            logw("onCapabilitiesUpdated on dead service");
+                        }
+                    }
+                });
+        if (taskId < 0) {
+            try {
+                c.onError(toUceError(taskId));
+                return;
+            } catch (RemoteException e) {
+                logi("Calling back to dead service");
+            }
+        }
+        mPendingCapabilityRequests.put(taskId, c);
+    }
+
+    @Override
+    public int getPublisherState() {
+        return 0;
+    }
+
+    @Override
+    public int requestPublication(RcsContactUceCapability capabilities, String contactUri,
+            int taskId) {
+        return 0;
+    }
+
+    @Override
+    public int requestCapability(String[] formatedContacts, int taskId) {
+        return 0;
+    }
+
+    @Override
+    public int requestAvailability(String formattedContact, int taskId) {
+        return 0;
+    }
+
+    @Override
+    public int getStackStatusForCapabilityRequest() {
+        return 0;
+    }
+
+    @Override
+    public void updatePublisherState(int publishState) {
+
+    }
+
+    private static String getNumberFromUri(Uri uri) {
+        String number = uri.getSchemeSpecificPart();
+        String[] numberParts = number.split("[@;:]");
+
+        if (numberParts.length == 0) {
+            return null;
+        }
+        return numberParts[0];
+    }
+
+    private static int toUcePublishState(int publishState) {
+        switch (publishState) {
+            case PresenceBase.PUBLISH_STATE_200_OK:
+                return RcsUceAdapter.PUBLISH_STATE_OK;
+            case PresenceBase.PUBLISH_STATE_NOT_PUBLISHED:
+                return RcsUceAdapter.PUBLISH_STATE_NOT_PUBLISHED;
+            case PresenceBase.PUBLISH_STATE_VOLTE_PROVISION_ERROR:
+                return RcsUceAdapter.PUBLISH_STATE_VOLTE_PROVISION_ERROR;
+            case PresenceBase.PUBLISH_STATE_RCS_PROVISION_ERROR:
+                return RcsUceAdapter.PUBLISH_STATE_RCS_PROVISION_ERROR;
+            case PresenceBase.PUBLISH_STATE_REQUEST_TIMEOUT:
+                return RcsUceAdapter.PUBLISH_STATE_REQUEST_TIMEOUT;
+            case PresenceBase.PUBLISH_STATE_OTHER_ERROR:
+                return RcsUceAdapter.PUBLISH_STATE_OTHER_ERROR;
+            default:
+                return RcsUceAdapter.PUBLISH_STATE_OTHER_ERROR;
+        }
+    }
+
+    private static int toUceError(int resultCode) {
+        switch (resultCode) {
+            case ResultCode.SUBSCRIBE_NOT_REGISTERED:
+                return RcsUceAdapter.ERROR_NOT_REGISTERED;
+            case ResultCode.SUBSCRIBE_REQUEST_TIMEOUT:
+                return RcsUceAdapter.ERROR_REQUEST_TIMEOUT;
+            case ResultCode.SUBSCRIBE_FORBIDDEN:
+                return RcsUceAdapter.ERROR_FORBIDDEN;
+            case ResultCode.SUBSCRIBE_NOT_FOUND:
+                return RcsUceAdapter.ERROR_NOT_FOUND;
+            case ResultCode.SUBSCRIBE_TOO_LARGE:
+                return RcsUceAdapter.ERROR_REQUEST_TOO_LARGE;
+            case ResultCode.SUBSCRIBE_INSUFFICIENT_MEMORY:
+                return RcsUceAdapter.ERROR_INSUFFICIENT_MEMORY;
+            case ResultCode.SUBSCRIBE_LOST_NETWORK:
+                return RcsUceAdapter.ERROR_LOST_NETWORK;
+            case ResultCode.SUBSCRIBE_ALREADY_IN_QUEUE:
+                return RcsUceAdapter.ERROR_ALREADY_IN_QUEUE;
+            default:
+                return RcsUceAdapter.ERROR_GENERIC_FAILURE;
+        }
+    }
+
+    private void logi(String log) {
+        Log.i(LOG_TAG, getLogPrefix().append(log).toString());
+    }
+
+    private void logw(String log) {
+        Log.w(LOG_TAG, getLogPrefix().append(log).toString());
+    }
+
+    private StringBuilder getLogPrefix() {
+        StringBuilder builder = new StringBuilder("[");
+        builder.append(mSlotId);
+        builder.append("->");
+        builder.append(mSubId);
+        builder.append("] ");
+        return builder;
+    }
+}
diff --git a/testapps/Android.mk b/testapps/Android.mk
deleted file mode 100644
index 5053e7d..0000000
--- a/testapps/Android.mk
+++ /dev/null
@@ -1 +0,0 @@
-include $(call all-subdir-makefiles)
diff --git a/testapps/EmbmsServiceTestApp/Android.bp b/testapps/EmbmsServiceTestApp/Android.bp
new file mode 100644
index 0000000..e4a54cb
--- /dev/null
+++ b/testapps/EmbmsServiceTestApp/Android.bp
@@ -0,0 +1,11 @@
+// Build the Sample Embms Services
+android_app {
+    name: "EmbmsTestService",
+    srcs: ["src/**/*.java"],
+    platform_apis: true,
+    certificate: "platform",
+    privileged: true,
+    // Uncomment the following line to build the EmbmsTestService
+    // into the userdebug build:
+    // LOCAL_MODULE_TAGS := debug
+}
diff --git a/testapps/EmbmsServiceTestApp/Android.mk b/testapps/EmbmsServiceTestApp/Android.mk
deleted file mode 100644
index 29b8112..0000000
--- a/testapps/EmbmsServiceTestApp/Android.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-# Build the Sample Embms Services
-include $(CLEAR_VARS)
-
-src_dirs := src
-res_dirs := res
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-
-LOCAL_PACKAGE_NAME := EmbmsTestService
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-LOCAL_PRIVILEGED_MODULE := true
-# Uncomment the following line to build the EmbmsTestService into the userdebug build.
-# LOCAL_MODULE_TAGS := debug
-
-include $(BUILD_PACKAGE)
diff --git a/testapps/EmbmsTestDownloadApp/Android.bp b/testapps/EmbmsTestDownloadApp/Android.bp
new file mode 100644
index 0000000..63f4e83
--- /dev/null
+++ b/testapps/EmbmsTestDownloadApp/Android.bp
@@ -0,0 +1,12 @@
+src_dirs = ["src"]
+res_dirs = ["res"]
+android_test {
+    name: "EmbmsTestDownloadApp",
+    static_libs: [
+        "androidx.recyclerview_recyclerview",
+        "androidx.legacy_legacy-support-v4",
+    ],
+    srcs: ["src/**/*.java"],
+    platform_apis: true,
+    certificate: "platform",
+}
diff --git a/testapps/EmbmsTestDownloadApp/Android.mk b/testapps/EmbmsTestDownloadApp/Android.mk
deleted file mode 100644
index bd53d79..0000000
--- a/testapps/EmbmsTestDownloadApp/Android.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-# Build the Sample Embms Download frontend
-include $(CLEAR_VARS)
-LOCAL_USE_AAPT2 := true
-LOCAL_STATIC_ANDROID_LIBRARIES := \
-        androidx.recyclerview_recyclerview \
-        androidx.legacy_legacy-support-v4
-
-src_dirs := src
-res_dirs := res
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-
-LOCAL_PACKAGE_NAME := EmbmsTestDownloadApp
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-LOCAL_MODULE_TAGS := tests
-
-include $(BUILD_PACKAGE)
diff --git a/testapps/EmbmsTestStreamingApp/Android.bp b/testapps/EmbmsTestStreamingApp/Android.bp
new file mode 100644
index 0000000..814c5ca
--- /dev/null
+++ b/testapps/EmbmsTestStreamingApp/Android.bp
@@ -0,0 +1,7 @@
+android_test {
+    name: "EmbmsTestStreamingApp",
+    srcs: ["src/**/*.java"],
+    platform_apis: true,
+    certificate: "platform",
+    //LOCAL_MODULE_TAGS := debug
+}
diff --git a/testapps/EmbmsTestStreamingApp/Android.mk b/testapps/EmbmsTestStreamingApp/Android.mk
deleted file mode 100644
index f574990..0000000
--- a/testapps/EmbmsTestStreamingApp/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-# Build the Sample Embms Streaming frontend
-include $(CLEAR_VARS)
-
-src_dirs := src
-res_dirs := res
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-
-LOCAL_PACKAGE_NAME := EmbmsTestStreamingApp
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-LOCAL_MODULE_TAGS := tests
-#LOCAL_MODULE_TAGS := debug
-
-include $(BUILD_PACKAGE)
diff --git a/testapps/ImsTestService/Android.bp b/testapps/ImsTestService/Android.bp
new file mode 100644
index 0000000..a0b4edb
--- /dev/null
+++ b/testapps/ImsTestService/Android.bp
@@ -0,0 +1,13 @@
+android_app {
+    name: "ImsTestApp",
+    static_libs: [
+        "androidx.legacy_legacy-support-v4",
+        "androidx.appcompat_appcompat",
+        "androidx.recyclerview_recyclerview",
+        "androidx.cardview_cardview",
+    ],
+    srcs: ["src/**/*.java"],
+    platform_apis: true,
+    certificate: "platform",
+    privileged: true,
+}
diff --git a/testapps/ImsTestService/Android.mk b/testapps/ImsTestService/Android.mk
deleted file mode 100644
index 2869c86..0000000
--- a/testapps/ImsTestService/Android.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_STATIC_ANDROID_LIBRARIES := \
-    androidx.legacy_legacy-support-v4 \
-    androidx.appcompat_appcompat \
-    androidx.recyclerview_recyclerview \
-    androidx.cardview_cardview
-
-LOCAL_USE_AAPT2 := true
-
-src_dirs := src
-res_dirs := res
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-
-LOCAL_PACKAGE_NAME := ImsTestApp
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-LOCAL_PRIVILEGED_MODULE := true
-
-include $(BUILD_PACKAGE)
diff --git a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java
index 4ee9355..5c0416b 100644
--- a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java
+++ b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java
@@ -24,6 +24,7 @@
 import android.telephony.ims.ImsException;
 import android.telephony.ims.ImsMmTelManager;
 import android.telephony.ims.ImsReasonInfo;
+import android.telephony.ims.RegistrationManager;
 import android.telephony.ims.stub.ImsRegistrationImplBase;
 import android.util.ArrayMap;
 import android.util.Log;
@@ -103,8 +104,8 @@
     }
 
 
-    private final ImsMmTelManager.RegistrationCallback mRegistrationCallback =
-            new ImsMmTelManager.RegistrationCallback() {
+    private final RegistrationManager.RegistrationCallback mRegistrationCallback =
+            new RegistrationManager.RegistrationCallback() {
 
         @Override
         public void onRegistered(int imsRadioTech) {
diff --git a/testapps/SmsManagerTestApp/Android.bp b/testapps/SmsManagerTestApp/Android.bp
new file mode 100644
index 0000000..5333eab
--- /dev/null
+++ b/testapps/SmsManagerTestApp/Android.bp
@@ -0,0 +1,5 @@
+android_app {
+    name: "SmsManagerTestApp",
+    srcs: ["src/**/*.java"],
+    sdk_version: "current",
+}
diff --git a/testapps/SmsManagerTestApp/Android.mk b/testapps/SmsManagerTestApp/Android.mk
deleted file mode 100644
index 307366b..0000000
--- a/testapps/SmsManagerTestApp/Android.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := optional
-
-src_dirs := src
-res_dirs := res
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-
-LOCAL_PACKAGE_NAME := SmsManagerTestApp
-
-LOCAL_SDK_VERSION := current
-
-include $(BUILD_PACKAGE)
diff --git a/testapps/TelephonyManagerTestApp/Android.bp b/testapps/TelephonyManagerTestApp/Android.bp
new file mode 100644
index 0000000..8a37c99
--- /dev/null
+++ b/testapps/TelephonyManagerTestApp/Android.bp
@@ -0,0 +1,7 @@
+android_test {
+    name: "TelephonyManagerTestApp",
+    srcs: ["src/**/*.java"],
+    javacflags: ["-parameters"],
+    platform_apis: true,
+    certificate: "platform",
+}
diff --git a/testapps/TelephonyManagerTestApp/Android.mk b/testapps/TelephonyManagerTestApp/Android.mk
deleted file mode 100644
index 290b261..0000000
--- a/testapps/TelephonyManagerTestApp/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-src_dirs := src
-res_dirs := res
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-
-LOCAL_JAVACFLAGS := -parameters
-
-LOCAL_PACKAGE_NAME := TelephonyManagerTestApp
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-LOCAL_MODULE_TAGS := tests
-
-include $(BUILD_PACKAGE)
diff --git a/testapps/TelephonyManagerTestApp/src/com/android/phone/testapps/telephonymanagertestapp/ParameterParser.java b/testapps/TelephonyManagerTestApp/src/com/android/phone/testapps/telephonymanagertestapp/ParameterParser.java
index 097c90a..ccb5639 100644
--- a/testapps/TelephonyManagerTestApp/src/com/android/phone/testapps/telephonymanagertestapp/ParameterParser.java
+++ b/testapps/TelephonyManagerTestApp/src/com/android/phone/testapps/telephonymanagertestapp/ParameterParser.java
@@ -19,12 +19,19 @@
 import android.content.Context;
 import android.telephony.NumberVerificationCallback;
 import android.telephony.PhoneNumberRange;
+import android.telephony.RadioAccessSpecifier;
+import android.text.TextUtils;
 import android.widget.Toast;
 
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Executor;
+import java.util.function.Consumer;
 import java.util.function.Function;
+import java.util.stream.Collectors;
 
 class ParameterParser {
     private static ParameterParser sInstance;
@@ -42,6 +49,9 @@
                 put(PhoneNumberRange.class, ParameterParser::parsePhoneNumberRange);
                 put(Executor.class, s -> parseExecutor(s));
                 put(NumberVerificationCallback.class, s -> parseNumberVerificationCallback(s));
+                put(Consumer.class, s -> parseConsumer(s));
+                put(List.class, s -> parseList(s));
+                put(RadioAccessSpecifier.class, s -> parseRadioAccessSpecifier(s));
             }};
 
     private ParameterParser(Context context) {
@@ -49,6 +59,7 @@
     }
 
     Object executeParser(Class type, String input) {
+        if ("null".equals(input)) return null;
         return mParsers.getOrDefault(type, s -> null).apply(input);
     }
 
@@ -64,6 +75,57 @@
         return mContext.getMainExecutor();
     }
 
+    private Consumer parseConsumer(String input) {
+        return o -> Toast.makeText(mContext, "Consumer: " + String.valueOf(o), Toast.LENGTH_SHORT)
+                .show();
+    }
+
+    /**
+     * input format: (ran)/(band1)+(band2)+.../(chan1)+(chan2)+...
+     * @return
+     */
+    private RadioAccessSpecifier parseRadioAccessSpecifier(String input) {
+        String[] parts = input.split("/");
+        int ran = Integer.parseInt(parts[0]);
+        String[] bandStrings = parts[1].split("\\+");
+        int[] bands = new int[bandStrings.length];
+        String[] chanStrings = parts[2].split("\\+");
+        int[] chans = new int[chanStrings.length];
+
+        for (int i = 0; i < bands.length; i++) {
+            bands[i] = Integer.parseInt(bandStrings[i]);
+        }
+
+        for (int i = 0; i < chans.length; i++) {
+            chans[i] = Integer.parseInt(chanStrings[i]);
+        }
+        return new RadioAccessSpecifier(ran, bands, chans);
+    }
+
+    private List parseList(String input) {
+        if (TextUtils.isEmpty(input)) {
+            return Collections.emptyList();
+        }
+        String[] components = input.split(" ");
+        String className = components[0];
+        Class c;
+        try {
+            c = mContext.getClassLoader().loadClass(className);
+        } catch (ClassNotFoundException e) {
+            Toast.makeText(mContext, "Invalid class " + className,
+                    Toast.LENGTH_SHORT).show();
+            return null;
+        }
+        if (!mParsers.containsKey(c)) {
+            Toast.makeText(mContext, "Cannot parse " + className,
+                    Toast.LENGTH_SHORT).show();
+            return null;
+        }
+        return Arrays.stream(components).skip(1)
+                .map(mParsers.get(c))
+                .collect(Collectors.toList());
+    }
+
     private NumberVerificationCallback parseNumberVerificationCallback(String input) {
         return new NumberVerificationCallback() {
             @Override
diff --git a/testapps/TelephonyRegistryTestApp/Android.bp b/testapps/TelephonyRegistryTestApp/Android.bp
new file mode 100644
index 0000000..fec5286
--- /dev/null
+++ b/testapps/TelephonyRegistryTestApp/Android.bp
@@ -0,0 +1,7 @@
+android_test {
+    name: "TelephonyRegistryTestApp",
+    srcs: ["src/**/*.java"],
+    platform_apis: true,
+    certificate: "platform",
+    //LOCAL_MODULE_TAGS := debug
+}
diff --git a/testapps/TelephonyRegistryTestApp/Android.mk b/testapps/TelephonyRegistryTestApp/Android.mk
deleted file mode 100644
index 8c0d286..0000000
--- a/testapps/TelephonyRegistryTestApp/Android.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-src_dirs := src
-res_dirs := res
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-
-LOCAL_PACKAGE_NAME := TelephonyRegistryTestApp
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-LOCAL_MODULE_TAGS := tests
-#LOCAL_MODULE_TAGS := debug
-
-include $(BUILD_PACKAGE)
diff --git a/tests/Android.bp b/tests/Android.bp
new file mode 100644
index 0000000..7ed234e
--- /dev/null
+++ b/tests/Android.bp
@@ -0,0 +1,47 @@
+//
+// 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.
+//
+
+android_test {
+    name: "TeleServiceTests",
+
+    srcs: ["src/**/*.java"],
+
+    libs: [
+        "android.test.mock",
+        "android.test.runner",
+        "telephony-common",
+        "android.test.base",
+        "ims-common",
+        "android.test.mock",
+    ],
+    platform_apis: true,
+    certificate: "platform",
+
+    instrumentation_for: "TeleService",
+
+    static_libs: [
+        "androidx.test.rules",
+        "mockito-target-minus-junit4",
+        "androidx.test.espresso.core",
+        "truth-prebuilt",
+    ],
+
+    test_suites: [
+        "device-tests",
+        "mts",
+    ],
+
+}
diff --git a/tests/Android.mk b/tests/Android.mk
deleted file mode 100644
index 76140ac..0000000
--- a/tests/Android.mk
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# 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_PRIVATE_PLATFORM_APIS := true
-LOCAL_CERTIFICATE := platform
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_JAVA_LIBRARIES := telephony-common android.test.base
-
-LOCAL_INSTRUMENTATION_FOR := TeleService
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
-        android.test.mock \
-        androidx.test.rules \
-        mockito-target-minus-junit4 \
-        androidx.test.espresso.core \
-        truth-prebuilt
-
-LOCAL_COMPATIBILITY_SUITE := device-tests
-
-include $(BUILD_PACKAGE)
diff --git a/tests/src/com/android/TelephonyTestBase.java b/tests/src/com/android/TelephonyTestBase.java
index 01267d8..86c5402 100644
--- a/tests/src/com/android/TelephonyTestBase.java
+++ b/tests/src/com/android/TelephonyTestBase.java
@@ -16,6 +16,8 @@
 
 package com.android;
 
+import static org.mockito.Mockito.spy;
+
 import android.os.Handler;
 import android.os.Looper;
 import android.util.Log;
@@ -34,7 +36,7 @@
 
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        mContext = new TestContext();
+        mContext = spy(new TestContext());
         // Set up the looper if it does not exist on the test thread.
         if (Looper.myLooper() == null) {
             Looper.prepare();
diff --git a/tests/src/com/android/TestContext.java b/tests/src/com/android/TestContext.java
index 4868647..c5b9b1e 100644
--- a/tests/src/com/android/TestContext.java
+++ b/tests/src/com/android/TestContext.java
@@ -23,7 +23,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.res.Resources;
 import android.os.Handler;
 import android.os.PersistableBundle;
 import android.telecom.TelecomManager;
@@ -35,20 +34,26 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
+import java.util.concurrent.Executor;
+
 public class TestContext extends MockContext {
 
     @Mock CarrierConfigManager mMockCarrierConfigManager;
     @Mock TelecomManager mMockTelecomManager;
     @Mock TelephonyManager mMockTelephonyManager;
     @Mock SubscriptionManager mMockSubscriptionManager;
-    @Mock Resources mMockResources;
 
     private PersistableBundle mCarrierConfig = new PersistableBundle();
 
     public TestContext() {
         MockitoAnnotations.initMocks(this);
         doReturn(mCarrierConfig).when(mMockCarrierConfigManager).getConfigForSubId(anyInt());
-        doReturn("test").when(mMockResources).getText(anyInt());
+    }
+
+    @Override
+    public Executor getMainExecutor() {
+        // Just run on current thread
+        return Runnable::run;
     }
 
     @Override
@@ -62,6 +67,11 @@
     }
 
     @Override
+    public String getAttributionTag() {
+        return "";
+    }
+
+    @Override
     public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
         return null;
     }
@@ -72,11 +82,6 @@
     }
 
     @Override
-    public Resources getResources() {
-        return mMockResources;
-    }
-
-    @Override
     public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter,
             String broadcastPermission, Handler scheduler) {
         return null;
diff --git a/tests/src/com/android/phone/CallFeaturesSettingTest.java b/tests/src/com/android/phone/CallFeaturesSettingTest.java
index 2468de4..7c7d6f8 100644
--- a/tests/src/com/android/phone/CallFeaturesSettingTest.java
+++ b/tests/src/com/android/phone/CallFeaturesSettingTest.java
@@ -21,8 +21,13 @@
 import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
 import static androidx.test.espresso.matcher.ViewMatchers.withText;
 
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.when;
 
+import android.app.KeyguardManager;
+import android.content.Context;
+
+import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.FlakyTest;
 import androidx.test.rule.ActivityTestRule;
 
@@ -46,13 +51,16 @@
     IccCard mMockIccCard;
     @Rule
     public ActivityTestRule<CallFeaturesSetting> mRule =
-            new ActivityTestRule<>(CallFeaturesSetting.class);
+            new ActivityTestRule<>(CallFeaturesSetting.class, false, true);
     private CallFeaturesSetting mActivity;
 
     @Before
-    public void setUp() {
+    public void setUp() throws Throwable {
         MockitoAnnotations.initMocks(this);
         mActivity = mRule.getActivity();
+        Context targetContext = InstrumentationRegistry.getTargetContext();
+        doReturn(targetContext).when(mMockPhone).getContext();
+        keepScreenOn(mRule, mActivity);
     }
 
     @Ignore
@@ -65,7 +73,7 @@
         when(mMockIccCard.getIccFdnAvailable()).thenReturn(true);
         getField("mPhone").set(mActivity, mMockPhone);
 
-        mActivity.onResume();
+        mActivity.runOnUiThread(() -> mActivity.onResume());
 
         // Check the FDN menu is displayed.
         onView(withText(R.string.fdn)).check(matches(isDisplayed()));
@@ -80,7 +88,7 @@
         when(mMockPhone.getIccCard()).thenReturn(null);
         getField("mPhone").set(mActivity, mMockPhone);
 
-        mActivity.onResume();
+        mActivity.runOnUiThread(() -> mActivity.onResume());
 
         // Check the FDN menu is not displayed.
         onView(withText(R.string.fdn)).check(doesNotExist());
@@ -96,7 +104,7 @@
         when(mMockIccCard.getIccFdnAvailable()).thenReturn(false);
         getField("mPhone").set(mActivity, mMockPhone);
 
-        mActivity.onResume();
+        mActivity.runOnUiThread(() -> mActivity.onResume());
 
         // Check the FDN menu is not displayed.
         onView(withText(R.string.fdn)).check(doesNotExist());
@@ -107,4 +115,19 @@
         field.setAccessible(true);
         return field;
     }
+
+    /**
+     * Automatically wake up device to perform tests.
+     */
+    private static void keepScreenOn(ActivityTestRule activityTestRule,
+            final CallFeaturesSetting activity) throws Throwable {
+        activityTestRule.runOnUiThread(() -> {
+            activity.setTurnScreenOn(true);
+            activity.setShowWhenLocked(true);
+            KeyguardManager keyguardManager =
+                    activity.getSystemService(KeyguardManager.class);
+            keyguardManager.requestDismissKeyguard(activity, null);
+        });
+        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+    }
 }
diff --git a/tests/src/com/android/phone/CdmaOptionsTest.java b/tests/src/com/android/phone/CdmaOptionsTest.java
deleted file mode 100644
index 1a1516c..0000000
--- a/tests/src/com/android/phone/CdmaOptionsTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2018 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 com.google.common.truth.Truth.assertThat;
-
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-
-import androidx.test.runner.AndroidJUnit4;
-
-import com.android.internal.telephony.PhoneConstants;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class CdmaOptionsTest {
-    @Test
-    public void shouldAddApnExpandPreference_doesNotExpandOnGsm() {
-        PersistableBundle bundle = new PersistableBundle();
-        bundle.putBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL, true);
-        assertThat(CdmaOptions.shouldAddApnExpandPreference(PhoneConstants.PHONE_TYPE_GSM, bundle))
-                .isFalse();
-    }
-
-    @Test
-    public void shouldAddApnExpandPreference_showExpandOnCdma() {
-        PersistableBundle bundle = new PersistableBundle();
-        bundle.putBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL, true);
-        assertThat(CdmaOptions.shouldAddApnExpandPreference(PhoneConstants.PHONE_TYPE_CDMA, bundle))
-                .isTrue();
-    }
-
-    @Test
-    public void shouldAddApnExpandPreference_doesNotExpandOnCdmaIfCarrierConfigDisabled() {
-        PersistableBundle bundle = new PersistableBundle();
-        bundle.putBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL, false);
-        assertThat(CdmaOptions.shouldAddApnExpandPreference(PhoneConstants.PHONE_TYPE_CDMA, bundle))
-                .isFalse();
-    }
-}
diff --git a/tests/src/com/android/phone/CnapTest.java b/tests/src/com/android/phone/CnapTest.java
deleted file mode 100644
index 7161ba8..0000000
--- a/tests/src/com/android/phone/CnapTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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);
-    }
-}
diff --git a/tests/src/com/android/phone/LocationAccessPolicyTest.java b/tests/src/com/android/phone/LocationAccessPolicyTest.java
index 9938bf2..2061f38 100644
--- a/tests/src/com/android/phone/LocationAccessPolicyTest.java
+++ b/tests/src/com/android/phone/LocationAccessPolicyTest.java
@@ -21,6 +21,7 @@
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Mockito.when;
 
 import android.Manifest;
@@ -187,11 +188,11 @@
                 anyInt(), anyInt())).thenReturn(s.appHasCoarseManifest
                 ? PackageManager.PERMISSION_GRANTED : PackageManager.PERMISSION_DENIED);
 
-        when(mAppOpsManager.noteOpNoThrow(eq(AppOpsManager.OP_FINE_LOCATION),
-                anyInt(), anyString()))
+        when(mAppOpsManager.noteOpNoThrow(eq(AppOpsManager.OPSTR_FINE_LOCATION),
+                anyInt(), anyString(), nullable(String.class), nullable(String.class)))
                 .thenReturn(s.fineAppOp);
-        when(mAppOpsManager.noteOpNoThrow(eq(AppOpsManager.OP_COARSE_LOCATION),
-                anyInt(), anyString()))
+        when(mAppOpsManager.noteOpNoThrow(eq(AppOpsManager.OPSTR_COARSE_LOCATION),
+                anyInt(), anyString(), nullable(String.class), nullable(String.class)))
                 .thenReturn(s.coarseAppOp);
 
         if (s.isDynamicLocationEnabled) {
@@ -220,6 +221,7 @@
         return new LocationAccessPolicy.LocationPermissionQuery.Builder()
                 .setMethod("test")
                 .setCallingPackage("com.android.test")
+                .setCallingFeatureId(null)
                 .setCallingPid(10001)
                 .setCallingUid(10001);
     }
diff --git a/tests/src/com/android/phone/NumberVerificationManagerTest.java b/tests/src/com/android/phone/NumberVerificationManagerTest.java
index d476ba5..f7914ab 100644
--- a/tests/src/com/android/phone/NumberVerificationManagerTest.java
+++ b/tests/src/com/android/phone/NumberVerificationManagerTest.java
@@ -57,7 +57,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         ServiceState ss = mock(ServiceState.class);
-        when(ss.getVoiceRegState()).thenReturn(ServiceState.STATE_IN_SERVICE);
+        when(ss.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
         when(mPhone1.getServiceState()).thenReturn(ss);
         when(mPhone1.getForegroundCall()).thenReturn(mForegroundCall);
         when(mPhone1.getRingingCall()).thenReturn(mRingingCall);
@@ -107,7 +107,7 @@
     @Test
     public void testNoPhoneInServiceFailure() throws Exception {
         ServiceState ss = mock(ServiceState.class);
-        when(ss.getVoiceRegState()).thenReturn(ServiceState.STATE_POWER_OFF);
+        when(ss.getState()).thenReturn(ServiceState.STATE_POWER_OFF);
         when(mPhone1.getServiceState()).thenReturn(ss);
         when(mPhone2.getServiceState()).thenReturn(ss);
         NumberVerificationManager manager =
@@ -138,7 +138,7 @@
     @Test
     public void testVerificationWorksWithOnePhoneInService() throws Exception {
         ServiceState ss = mock(ServiceState.class);
-        when(ss.getVoiceRegState()).thenReturn(ServiceState.STATE_POWER_OFF);
+        when(ss.getState()).thenReturn(ServiceState.STATE_POWER_OFF);
         when(mPhone1.getServiceState()).thenReturn(ss);
         NumberVerificationManager manager =
                 new NumberVerificationManager(() -> new Phone[]{mPhone1, mPhone2});
diff --git a/tests/src/com/android/phone/PhoneGlobalsTest.java b/tests/src/com/android/phone/PhoneGlobalsTest.java
new file mode 100644
index 0000000..d45a890
--- /dev/null
+++ b/tests/src/com/android/phone/PhoneGlobalsTest.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2020 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 org.junit.Assert.assertEquals;
+
+import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+
+import androidx.test.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.TelephonyTestBase;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.Locale;
+
+
+@RunWith(AndroidJUnit4.class)
+public class PhoneGlobalsTest extends TelephonyTestBase {
+
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    @Test
+    public void testGetImsResources() throws Exception {
+        // Do not use test context here, we are testing that overlaying for different locales works
+        // correctly
+        Context realContext = InstrumentationRegistry.getTargetContext();
+        String defaultImsMmtelPackage = getResourcesForLocale(realContext, Locale.US).getString(
+                R.string.config_ims_mmtel_package);
+        String defaultImsMmtelPackageUk = getResourcesForLocale(realContext, Locale.UK).getString(
+                R.string.config_ims_mmtel_package);
+        assertEquals("locales changed IMS package configuration!", defaultImsMmtelPackage,
+                defaultImsMmtelPackageUk);
+    }
+
+    private Resources getResourcesForLocale(Context context, Locale locale) {
+        Configuration config = new Configuration();
+        config.setToDefaults();
+        config.setLocale(locale);
+        Context localeContext = context.createConfigurationContext(config);
+        return localeContext.getResources();
+    }
+}
diff --git a/tests/src/com/android/phone/RoamingDialogFragmentTest.java b/tests/src/com/android/phone/RoamingDialogFragmentTest.java
deleted file mode 100644
index a9b32ea..0000000
--- a/tests/src/com/android/phone/RoamingDialogFragmentTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2016 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 androidx.test.espresso.Espresso.onData;
-import static androidx.test.espresso.Espresso.onView;
-import static androidx.test.espresso.action.ViewActions.click;
-import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist;
-import static androidx.test.espresso.assertion.ViewAssertions.matches;
-import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant;
-import static androidx.test.espresso.matcher.ViewMatchers.isChecked;
-import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static androidx.test.espresso.matcher.ViewMatchers.withId;
-import static androidx.test.espresso.matcher.ViewMatchers.withText;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.Activity;
-import android.content.pm.ActivityInfo;
-import android.provider.Settings.Global;
-import android.provider.Settings.SettingNotFoundException;
-
-import androidx.test.espresso.matcher.PreferenceMatchers;
-import androidx.test.filters.FlakyTest;
-import androidx.test.rule.ActivityTestRule;
-
-import junit.framework.AssertionFailedError;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-
-/**
- * Espresso tests to check some properties of the dialog that appears when a user
- * tries to turn on data roaming.
- */
-public class RoamingDialogFragmentTest {
-
-    @Rule
-    public ActivityTestRule<MobileNetworkSettings> mRule =
-            new ActivityTestRule<>(MobileNetworkSettings.class);
-    private Activity mActivity;
-
-    /**
-     * Make sure roaming is off before we start a test since this checks the dialog that only
-     * shows up when we try to turn it on.
-     */
-    @Before
-    public void disableRoaming() {
-        mActivity = mRule.getActivity();
-
-        // turn off data roaming if it is on
-        try {
-            onData(PreferenceMatchers.withTitle(R.string.roaming))
-                    .check(matches(hasDescendant(isChecked())))
-                    .perform(click());
-        } catch (AssertionFailedError e) {
-            // don't click the switch if it is already off.
-        }
-    }
-
-    @FlakyTest
-    @Test
-    public void dataRoamingDialogPersistsOnRotation() {
-        // click on the data roaming preference to trigger warning dialog
-        onData(PreferenceMatchers.withTitle(R.string.roaming)).perform(click());
-
-        // request both orientations to ensure at least one rotation occurs
-        mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
-        mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
-
-        // verify the title of the dialog is visible
-        onView(withText(R.string.roaming_alert_title)).check(matches(isDisplayed()));
-
-    }
-
-    @FlakyTest
-    @Test
-    public void dataRoamingEnabledWhenPositiveButtonClicked() throws SettingNotFoundException {
-        // click on the data roaming preference to trigger warning dialog
-        onData(PreferenceMatchers.withTitle(R.string.roaming)).perform(click());
-
-        // click to confirm we want to turn on data roaming
-        onView(withId(android.R.id.button1)).perform(click());
-
-        // verify that the the setting has actually been changed
-        assertThat(Global.getInt(mActivity.getApplicationContext().getContentResolver(),
-                Global.DATA_ROAMING)).isEqualTo(1);
-    }
-
-    @FlakyTest
-    @Test
-    public void dialogDismissedOnNegativeButtonClicked() {
-        // click on the data roaming preference to trigger warning dialog
-        onData(PreferenceMatchers.withTitle(R.string.roaming)).perform(click());
-
-        // click to cancel turning on data roaming
-        onView(withId(android.R.id.button2)).perform(click());
-
-        // verify the title of the dialog is gone
-        onView(withText(R.string.roaming_alert_title)).check(doesNotExist());
-    }
-
-    @FlakyTest
-    @Test
-    public void dataRoamingStaysDisabledWhenDialogCanceled() throws SettingNotFoundException {
-        // click on the data roaming preference to trigger warning dialog
-        onData(PreferenceMatchers.withTitle(R.string.roaming)).perform(click());
-
-        // click to cancel turning on data roaming
-        onView(withId(android.R.id.button2)).perform(click());
-
-        // verify that the the setting has not been changed
-        assertThat(Global.getInt(mActivity.getApplicationContext().getContentResolver(),
-                Global.DATA_ROAMING)).isEqualTo(0);
-
-    }
-}
diff --git a/tests/src/com/android/phone/ServiceStateProviderTest.java b/tests/src/com/android/phone/ServiceStateProviderTest.java
new file mode 100644
index 0000000..32e5f26
--- /dev/null
+++ b/tests/src/com/android/phone/ServiceStateProviderTest.java
@@ -0,0 +1,307 @@
+/*
+ * Copyright (C) 2019 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.provider.Telephony.ServiceStateTable;
+import static android.provider.Telephony.ServiceStateTable.getUriForSubscriptionId;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+
+import android.content.Context;
+import android.content.pm.ProviderInfo;
+import android.database.ContentObserver;
+import android.database.Cursor;
+import android.net.Uri;
+import android.telephony.ServiceState;
+import android.telephony.SubscriptionManager;
+import android.test.mock.MockContentResolver;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests for simple queries of ServiceStateProvider.
+ *
+ * Build, install and run the tests by running the commands below:
+ *     runtest --path <dir or file>
+ *     runtest --path <dir or file> --test-method <testMethodName>
+ *     e.g.)
+ *         runtest --path tests/src/com/android/phone/ServiceStateProviderTest.java \
+ *                 --test-method testGetServiceState
+ */
+public class ServiceStateProviderTest {
+    private static final String TAG = "ServiceStateProviderTest";
+
+    private Context mContext;
+    private MockContentResolver mContentResolver;
+    private ServiceState mTestServiceState;
+    private ServiceState mTestServiceStateForSubId1;
+
+    private final String[] mTestProjection =
+    {
+        ServiceStateTable.VOICE_REG_STATE,
+        ServiceStateProvider.DATA_REG_STATE,
+        ServiceStateProvider.VOICE_OPERATOR_ALPHA_LONG,
+        ServiceStateProvider.VOICE_OPERATOR_ALPHA_SHORT,
+        ServiceStateTable.VOICE_OPERATOR_NUMERIC,
+        ServiceStateProvider.DATA_OPERATOR_ALPHA_LONG,
+        ServiceStateProvider.DATA_OPERATOR_ALPHA_SHORT,
+        ServiceStateProvider.DATA_OPERATOR_NUMERIC,
+        ServiceStateTable.IS_MANUAL_NETWORK_SELECTION,
+        ServiceStateProvider.RIL_VOICE_RADIO_TECHNOLOGY,
+        ServiceStateProvider.RIL_DATA_RADIO_TECHNOLOGY,
+        ServiceStateProvider.CSS_INDICATOR,
+        ServiceStateProvider.NETWORK_ID,
+        ServiceStateProvider.SYSTEM_ID,
+        ServiceStateProvider.CDMA_ROAMING_INDICATOR,
+        ServiceStateProvider.CDMA_DEFAULT_ROAMING_INDICATOR,
+        ServiceStateProvider.CDMA_ERI_ICON_INDEX,
+        ServiceStateProvider.CDMA_ERI_ICON_MODE,
+        ServiceStateProvider.IS_EMERGENCY_ONLY,
+        ServiceStateProvider.IS_USING_CARRIER_AGGREGATION,
+        ServiceStateProvider.OPERATOR_ALPHA_LONG_RAW,
+        ServiceStateProvider.OPERATOR_ALPHA_SHORT_RAW,
+    };
+
+    @Before
+    public void setUp() throws Exception {
+        mContext = mock(Context.class);
+        mContentResolver = new MockContentResolver() {
+            @Override
+            public void notifyChange(Uri uri, ContentObserver observer, boolean syncToNetwork) {
+                throw new RuntimeException("notifyChange!");
+            }
+        };
+        doReturn(mContentResolver).when(mContext).getContentResolver();
+
+        mTestServiceState = new ServiceState();
+        mTestServiceState.setStateOutOfService();
+        mTestServiceStateForSubId1 = new ServiceState();
+        mTestServiceStateForSubId1.setStateOff();
+
+        // Mock out the actual phone state
+        ServiceStateProvider provider = new ServiceStateProvider() {
+            @Override
+            public ServiceState getServiceState(int subId) {
+                if (subId == 1) {
+                    return mTestServiceStateForSubId1;
+                } else {
+                    return mTestServiceState;
+                }
+            }
+
+            @Override
+            public int getDefaultSubId() {
+                return 0;
+            }
+        };
+        ProviderInfo providerInfo = new ProviderInfo();
+        providerInfo.authority = "service-state";
+        provider.attachInfoForTesting(mContext, providerInfo);
+        mContentResolver.addProvider("service-state", provider);
+    }
+
+    @Test
+    @SmallTest
+    public void testQueryServiceStateWithNoSubId() {
+        // Verify that when calling query with no subId in the uri the default ServiceState is
+        // returned.
+        // In this case the subId is set to 0 and the expected service state is
+        // mTestServiceState.
+        verifyServiceStateForSubId(ServiceStateTable.CONTENT_URI, mTestServiceState);
+    }
+
+    @Test
+    @SmallTest
+    public void testGetServiceStateWithDefaultSubId() {
+        // Verify that when calling with the DEFAULT_SUBSCRIPTION_ID the correct ServiceState is
+        // returned
+        // In this case the subId is set to 0 and the expected service state is
+        // mTestServiceState.
+        verifyServiceStateForSubId(
+                getUriForSubscriptionId(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID),
+                mTestServiceState);
+    }
+
+    /**
+     * Test querying the service state for a given subId
+     */
+    @Test
+    @SmallTest
+    public void testGetServiceStateForSubId() {
+        // Verify that when calling with a specific subId the correct ServiceState is returned
+        // In this case the subId is set to 1 and the expected service state is
+        // mTestServiceStateForSubId1
+        verifyServiceStateForSubId(getUriForSubscriptionId(1), mTestServiceStateForSubId1);
+    }
+
+    private void verifyServiceStateForSubId(Uri uri, ServiceState ss) {
+        Cursor cursor = mContentResolver.query(uri, mTestProjection, "",
+                null, null);
+        assertNotNull(cursor);
+        cursor.moveToFirst();
+
+        final int voiceRegState = ss.getState();
+        final int dataRegState = ss.getDataRegistrationState();
+        final String voiceOperatorAlphaLong = ss.getOperatorAlphaLong();
+        final String voiceOperatorAlphaShort = ss.getOperatorAlphaShort();
+        final String voiceOperatorNumeric = ss.getOperatorNumeric();
+        final String dataOperatorAlphaLong = ss.getOperatorAlphaLong();
+        final String dataOperatorAlphaShort = ss.getOperatorAlphaShort();
+        final String dataOperatorNumeric = ss.getOperatorNumeric();
+        final int isManualNetworkSelection = (ss.getIsManualSelection()) ? 1 : 0;
+        final int rilVoiceRadioTechnology = ss.getRilVoiceRadioTechnology();
+        final int rilDataRadioTechnology = ss.getRilDataRadioTechnology();
+        final int cssIndicator = ss.getCssIndicator();
+        final int networkId = ss.getCdmaNetworkId();
+        final int systemId = ss.getCdmaSystemId();
+        final int cdmaRoamingIndicator = ss.getCdmaRoamingIndicator();
+        final int cdmaDefaultRoamingIndicator = ss.getCdmaDefaultRoamingIndicator();
+        final int cdmaEriIconIndex = ss.getCdmaEriIconIndex();
+        final int cdmaEriIconMode = ss.getCdmaEriIconMode();
+        final int isEmergencyOnly = (ss.isEmergencyOnly()) ? 1 : 0;
+        final int isUsingCarrierAggregation = (ss.isUsingCarrierAggregation()) ? 1 : 0;
+        final String operatorAlphaLongRaw = ss.getOperatorAlphaLongRaw();
+        final String operatorAlphaShortRaw = ss.getOperatorAlphaShortRaw();
+
+        assertEquals(voiceRegState, cursor.getInt(0));
+        assertEquals(dataRegState, cursor.getInt(1));
+        assertEquals(voiceOperatorAlphaLong, cursor.getString(2));
+        assertEquals(voiceOperatorAlphaShort, cursor.getString(3));
+        assertEquals(voiceOperatorNumeric, cursor.getString(4));
+        assertEquals(dataOperatorAlphaLong, cursor.getString(5));
+        assertEquals(dataOperatorAlphaShort, cursor.getString(6));
+        assertEquals(dataOperatorNumeric, cursor.getString(7));
+        assertEquals(isManualNetworkSelection, cursor.getInt(8));
+        assertEquals(rilVoiceRadioTechnology, cursor.getInt(9));
+        assertEquals(rilDataRadioTechnology, cursor.getInt(10));
+        assertEquals(cssIndicator, cursor.getInt(11));
+        assertEquals(networkId, cursor.getInt(12));
+        assertEquals(systemId, cursor.getInt(13));
+        assertEquals(cdmaRoamingIndicator, cursor.getInt(14));
+        assertEquals(cdmaDefaultRoamingIndicator, cursor.getInt(15));
+        assertEquals(cdmaEriIconIndex, cursor.getInt(16));
+        assertEquals(cdmaEriIconMode, cursor.getInt(17));
+        assertEquals(isEmergencyOnly, cursor.getInt(18));
+        assertEquals(isUsingCarrierAggregation, cursor.getInt(19));
+        assertEquals(operatorAlphaLongRaw, cursor.getString(20));
+        assertEquals(operatorAlphaShortRaw, cursor.getString(21));
+    }
+
+    /**
+     * Test that we don't notify for certain field changes. (e.g. we don't notify when the NetworkId
+     * or SystemId change) This is an intentional behavior change from the broadcast.
+     */
+    @Test
+    @SmallTest
+    public void testNoNotify() {
+        int subId = 0;
+
+        ServiceState oldSS = new ServiceState();
+        oldSS.setStateOutOfService();
+        oldSS.setCdmaSystemAndNetworkId(1, 1);
+
+        ServiceState newSS = new ServiceState();
+        newSS.setStateOutOfService();
+        newSS.setCdmaSystemAndNetworkId(0, 0);
+
+        // Test that notifyChange is not called for these fields
+        boolean notifyChangeWasCalled = false;
+        try {
+            ServiceStateProvider.notifyChangeForSubIdAndField(mContext, oldSS, newSS, subId);
+        } catch (RuntimeException e) {
+            final String message = e.getMessage();
+            if (message != null &&  message.equals("notifyChange!")) {
+                notifyChangeWasCalled = true;
+            }
+        }
+        assertFalse(notifyChangeWasCalled);
+    }
+
+    @Test
+    @SmallTest
+    public void testNotifyChanged() {
+        int subId = 0;
+
+        ServiceState oldSS = new ServiceState();
+        oldSS.setStateOutOfService();
+        oldSS.setVoiceRegState(ServiceState.STATE_OUT_OF_SERVICE);
+
+        ServiceState copyOfOldSS = new ServiceState();
+        copyOfOldSS.setStateOutOfService();
+        copyOfOldSS.setVoiceRegState(ServiceState.STATE_OUT_OF_SERVICE);
+
+        ServiceState newSS = new ServiceState();
+        newSS.setStateOutOfService();
+        newSS.setVoiceRegState(ServiceState.STATE_POWER_OFF);
+
+        // Test that notifyChange is not called with no change in notifyChangeForSubIdAndField
+        boolean notifyChangeWasCalled = false;
+        try {
+            ServiceStateProvider.notifyChangeForSubIdAndField(mContext, oldSS, copyOfOldSS, subId);
+        } catch (RuntimeException e) {
+            final String message = e.getMessage();
+            if (message != null &&  message.equals("notifyChange!")) {
+                notifyChangeWasCalled = true;
+            }
+        }
+        assertFalse(notifyChangeWasCalled);
+
+        // Test that notifyChange is not called with no change in notifyChangeForSubId
+        notifyChangeWasCalled = false;
+        try {
+            ServiceStateProvider.notifyChangeForSubId(mContext, oldSS, copyOfOldSS, subId);
+        } catch (RuntimeException e) {
+            final String message = e.getMessage();
+            if (message != null &&  message.equals("notifyChange!")) {
+                notifyChangeWasCalled = true;
+            }
+        }
+        assertFalse(notifyChangeWasCalled);
+
+        // Test that notifyChange is called by notifyChangeForSubIdAndField when the voice_reg_state
+        // changes
+        notifyChangeWasCalled = false;
+        try {
+            ServiceStateProvider.notifyChangeForSubIdAndField(mContext, oldSS, newSS, subId);
+        } catch (RuntimeException e) {
+            final String message = e.getMessage();
+            if (message != null &&  message.equals("notifyChange!")) {
+                notifyChangeWasCalled = true;
+            }
+        }
+        assertTrue(notifyChangeWasCalled);
+
+        // Test that notifyChange is called by notifyChangeForSubId when the voice_reg_state changes
+        notifyChangeWasCalled = false;
+        try {
+            ServiceStateProvider.notifyChangeForSubId(mContext, oldSS, newSS, subId);
+        } catch (RuntimeException e) {
+            final String message = e.getMessage();
+            if (message != null &&  message.equals("notifyChange!")) {
+                notifyChangeWasCalled = true;
+            }
+        }
+        assertTrue(notifyChangeWasCalled);
+    }
+}
diff --git a/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java b/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
index b8f2ec1..85dba51 100644
--- a/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
+++ b/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
@@ -121,7 +121,7 @@
         }
 
         @Override
-        protected void grantDefaultPermissionsToActiveLuiApp(ActivityInfo activityInfo) {}
+        protected void grantDefaultPermissionsToLuiApp(ActivityInfo activityInfo) {}
 
         @Override
         protected void revokePermissionFromLuiApps(Intent intent) {}
diff --git a/tests/src/com/android/phone/tests/CallDialTest.java b/tests/src/com/android/phone/tests/CallDialTest.java
index b30f5b2..6e78be0 100644
--- a/tests/src/com/android/phone/tests/CallDialTest.java
+++ b/tests/src/com/android/phone/tests/CallDialTest.java
@@ -22,9 +22,9 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.RemoteException;
-import android.os.ServiceManager;
 import android.telecom.PhoneAccount;
 import android.telephony.PhoneNumberUtils;
+import android.telephony.TelephonyFrameworkInitializer;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
@@ -155,7 +155,11 @@
         log("==> number: '" + number + "'");
 
         try {
-            ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone"));
+            ITelephony phone = ITelephony.Stub.asInterface(
+                    TelephonyFrameworkInitializer
+                            .getTelephonyServiceManager()
+                            .getTelephonyServiceRegisterer()
+                            .get());
             log("- phone: " + phone);
             log("- calling call()...");
             phone.call(getPackageName(), number);
@@ -173,7 +177,11 @@
         log("==> number: '" + number + "'");
 
         try {
-            ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone"));
+            ITelephony phone = ITelephony.Stub.asInterface(
+                    TelephonyFrameworkInitializer
+                            .getTelephonyServiceManager()
+                            .getTelephonyServiceRegisterer()
+                            .get());
             log("- phone: " + phone);
             log("- calling dial()...");
             phone.dial(number);
diff --git a/tests/src/com/android/services/telephony/ConferenceParticipantConnectionTest.java b/tests/src/com/android/services/telephony/ConferenceParticipantConnectionTest.java
index 4336a20..ede0965 100644
--- a/tests/src/com/android/services/telephony/ConferenceParticipantConnectionTest.java
+++ b/tests/src/com/android/services/telephony/ConferenceParticipantConnectionTest.java
@@ -16,7 +16,7 @@
 
 package com.android.services.telephony;
 
-import static android.telecom.ConferenceParticipant.getParticipantAddress;
+import static com.android.ims.internal.ConferenceParticipant.getParticipantAddress;
 
 import static org.junit.Assert.assertEquals;
 
diff --git a/tests/src/com/android/services/telephony/ImsConferenceControllerTest.java b/tests/src/com/android/services/telephony/ImsConferenceControllerTest.java
index aa832aa..edfc34f 100644
--- a/tests/src/com/android/services/telephony/ImsConferenceControllerTest.java
+++ b/tests/src/com/android/services/telephony/ImsConferenceControllerTest.java
@@ -16,14 +16,13 @@
 
 package com.android.services.telephony;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.times;
-
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
 
 import android.os.Looper;
 import android.test.suitebuilder.annotation.SmallTest;
@@ -32,7 +31,6 @@
 
 import org.junit.Before;
 import org.junit.Test;
-
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
@@ -85,7 +83,7 @@
         mControllerTest.add(mTestTelephonyConnectionA);
 
         mTestTelephonyConnectionA.setActive();
-        mTestTelephonyConnectionB.setOnHold();
+        mTestTelephonyConnectionB.setTelephonyConnectionOnHold();
 
         assertTrue(mTestTelephonyConnectionA.getConferenceables()
                 .contains(mTestTelephonyConnectionB));
@@ -125,10 +123,9 @@
         mControllerTest.add(mTestTelephonyConnectionA);
 
         mTestTelephonyConnectionA.setActive();
-        mTestTelephonyConnectionB.setOnHold();
+        mTestTelephonyConnectionB.setTelephonyConnectionOnHold();
 
         verify(mMockTelephonyConnectionServiceProxy, times(2))
                 .addConference(any(ImsConference.class));
-
     }
 }
diff --git a/tests/src/com/android/services/telephony/ImsConferenceTest.java b/tests/src/com/android/services/telephony/ImsConferenceTest.java
index eaec5b6..7251402 100644
--- a/tests/src/com/android/services/telephony/ImsConferenceTest.java
+++ b/tests/src/com/android/services/telephony/ImsConferenceTest.java
@@ -16,38 +16,31 @@
 
 package com.android.services.telephony;
 
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.times;
-
-import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.net.Uri;
 import android.os.Looper;
 import android.telecom.Call;
 import android.telecom.Conference;
-import android.telecom.ConferenceParticipant;
 import android.telecom.Connection;
 import android.telecom.PhoneAccountHandle;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import com.android.internal.telephony.PhoneConstants;
+import com.android.ims.internal.ConferenceParticipant;
 
 import org.junit.Before;
 import org.junit.Test;
-
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
 
 import java.util.Arrays;
 
@@ -105,8 +98,6 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1));
         assertEquals(0, imsConference.getNumberOfParticipants());
-        verify(mMockTelephonyConnectionServiceProxy, times(2)).removeConnection(
-                any(Connection.class));
         reset(mMockTelephonyConnectionServiceProxy);
 
         // Back to 2!
@@ -169,8 +160,6 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1, participant2, participant3Disconnected));
         assertEquals(2, imsConference.getNumberOfParticipants());
-        verify(mMockTelephonyConnectionServiceProxy, times(1)).removeConnection(
-                any(Connection.class));
         reset(mMockTelephonyConnectionServiceProxy);
 
         // Now remove it from another CEP update; should still be the same number of participants
@@ -178,8 +167,6 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1, participant2));
         assertEquals(2, imsConference.getNumberOfParticipants());
-        verify(mMockTelephonyConnectionServiceProxy, never()).removeConnection(
-                any(Connection.class));
         verify(mMockTelephonyConnectionServiceProxy, never()).addExistingConnection(
                 any(PhoneAccountHandle.class), any(Connection.class),
                 any(Conference.class));
@@ -230,8 +217,6 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1, participant2));
         assertEquals(2, imsConference.getNumberOfParticipants());
-        verify(mMockTelephonyConnectionServiceProxy, times(1)).removeConnection(
-                any(Connection.class));
         verify(mMockTelephonyConnectionServiceProxy, never()).addExistingConnection(
                 any(PhoneAccountHandle.class), any(Connection.class),
                 any(Conference.class));
@@ -288,8 +273,6 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1, participant2Disconnected));
         assertEquals(0, imsConference.getNumberOfParticipants());
-        verify(mMockTelephonyConnectionServiceProxy, times(2)).removeConnection(
-                any(Connection.class));
         reset(mMockTelephonyConnectionServiceProxy);
 
         // Pretend to merge someone else into the conference.
@@ -318,14 +301,14 @@
                 null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
 
         final boolean[] isConferenceState = new boolean[1];
-        Conference.Listener conferenceListener = new Conference.Listener() {
+        TelephonyConferenceBase.TelephonyConferenceListener conferenceListener =
+                new TelephonyConferenceBase.TelephonyConferenceListener() {
             @Override
-            public void onConferenceStateChanged(Conference c, boolean isConference) {
-                super.onConferenceStateChanged(c, isConference);
-                isConferenceState[0] = isConference;
+            public void onConferenceMembershipChanged(Connection connection) {
+                isConferenceState[0] = connection.getConference() != null;
             }
         };
-        imsConference.addListener(conferenceListener);
+        imsConference.addTelephonyConferenceListener(conferenceListener);
 
         ConferenceParticipant participant1 = new ConferenceParticipant(
                 Uri.parse("tel:6505551212"),
@@ -350,8 +333,6 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1));
         assertEquals(0, imsConference.getNumberOfParticipants());
-        verify(mMockTelephonyConnectionServiceProxy, times(2)).removeConnection(
-                any(Connection.class));
 
         // Emulate a pre-disconnect conference event package; there will be zero participants.
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
@@ -362,6 +343,31 @@
     }
 
     /**
+     * Verify that the single party emulate correctly when the conference start with only
+     * one participant.
+     */
+    @Test
+    @SmallTest
+    public void testSinglePartyEmulationWithOneParticipantAtBeginning() {
+        when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
+                .thenReturn(false);
+
+        ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
+                mMockTelephonyConnectionServiceProxy, mConferenceHost,
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+
+        ConferenceParticipant participant1 = new ConferenceParticipant(
+                Uri.parse("tel:6505551212"),
+                "A",
+                Uri.parse("sip:6505551212@testims.com"),
+                Connection.STATE_ACTIVE,
+                Call.Details.DIRECTION_INCOMING);
+        imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
+                Arrays.asList(participant1));
+        assertTrue(imsConference.isEmulatingSinglePartyCall());
+    }
+
+    /**
      * Verify that we do not use single party emulation when a sim call manager is in use.
      */
     @Test
diff --git a/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java b/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java
index 8b46bf0..dffbbf3 100644
--- a/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java
+++ b/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java
@@ -34,6 +34,7 @@
 import androidx.test.runner.AndroidJUnit4;
 
 import com.android.TelephonyTestBase;
+import com.android.internal.telephony.CommandsInterface;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
 
@@ -55,6 +56,7 @@
 
     @Mock Phone mMockPhone;
     @Mock RadioOnStateListener.Callback mCallback;
+    @Mock CommandsInterface mMockCi;
     RadioOnStateListener mListener;
 
     @Override
@@ -80,13 +82,17 @@
     @Test
     @SmallTest
     public void testRegisterForCallback() {
-        mListener.waitForRadioOn(mMockPhone, mCallback);
+        mMockPhone.mCi = mMockCi;
+        mListener.waitForRadioOn(mMockPhone, mCallback, false, false);
 
         waitForHandlerAction(mListener.getHandler(), TIMEOUT_MS);
 
         verify(mMockPhone).unregisterForServiceStateChanged(any(Handler.class));
         verify(mMockPhone).registerForServiceStateChanged(any(Handler.class),
                 eq(RadioOnStateListener.MSG_SERVICE_STATE_CHANGED), isNull());
+
+        verify(mMockCi).registerForOffOrNotAvailable(any(Handler.class),
+                eq(RadioOnStateListener.MSG_RADIO_OFF_OR_NOT_AVAILABLE), isNull());
     }
 
     /**
@@ -99,9 +105,11 @@
     public void testPhoneChangeState_OkToCallTrue() {
         ServiceState state = new ServiceState();
         state.setState(ServiceState.STATE_IN_SERVICE);
+        when(mMockPhone.getServiceState()).thenReturn(state);
         when(mMockPhone.getState()).thenReturn(PhoneConstants.State.IDLE);
         when(mCallback.isOkToCall(eq(mMockPhone), anyInt())).thenReturn(true);
-        mListener.waitForRadioOn(mMockPhone, mCallback);
+        mMockPhone.mCi = mMockCi;
+        mListener.waitForRadioOn(mMockPhone, mCallback, false, false);
         waitForHandlerAction(mListener.getHandler(), TIMEOUT_MS);
 
         mListener.getHandler().obtainMessage(RadioOnStateListener.MSG_SERVICE_STATE_CHANGED,
@@ -124,7 +132,8 @@
         when(mMockPhone.getState()).thenReturn(PhoneConstants.State.IDLE);
         when(mCallback.isOkToCall(eq(mMockPhone), anyInt())).thenReturn(false);
         when(mMockPhone.getServiceState()).thenReturn(state);
-        mListener.waitForRadioOn(mMockPhone, mCallback);
+        mMockPhone.mCi = mMockCi;
+        mListener.waitForRadioOn(mMockPhone, mCallback, false, false);
         waitForHandlerAction(mListener.getHandler(), TIMEOUT_MS);
 
         mListener.getHandler().obtainMessage(RadioOnStateListener.MSG_SERVICE_STATE_CHANGED,
@@ -152,10 +161,33 @@
         mListener.setMaxNumRetries(2);
 
         // Wait for the timer to expire and check state manually in onRetryTimeout
-        mListener.waitForRadioOn(mMockPhone, mCallback);
+        mMockPhone.mCi = mMockCi;
+        mListener.waitForRadioOn(mMockPhone, mCallback, false, false);
         waitForHandlerActionDelayed(mListener.getHandler(), TIMEOUT_MS, TIMEOUT_MS /*delay*/);
 
         verify(mCallback).onComplete(eq(mListener), eq(false));
-        verify(mMockPhone, times(2)).setRadioPower(eq(true));
+        verify(mMockPhone, times(2)).setRadioPower(eq(true),
+                eq(false), eq(false), eq(false));
+    }
+
+    @Test
+    @SmallTest
+    public void testTimeout_RetryFailure_ForEmergency() {
+        ServiceState state = new ServiceState();
+        state.setState(ServiceState.STATE_POWER_OFF);
+        when(mMockPhone.getState()).thenReturn(PhoneConstants.State.IDLE);
+        when(mMockPhone.getServiceState()).thenReturn(state);
+        when(mCallback.isOkToCall(eq(mMockPhone), anyInt())).thenReturn(false);
+        mListener.setTimeBetweenRetriesMillis(0/*ms*/);
+        mListener.setMaxNumRetries(2);
+
+        // Wait for the timer to expire and check state manually in onRetryTimeout
+        mMockPhone.mCi = mMockCi;
+        mListener.waitForRadioOn(mMockPhone, mCallback, true, true);
+        waitForHandlerActionDelayed(mListener.getHandler(), TIMEOUT_MS, TIMEOUT_MS /*delay*/);
+
+        verify(mCallback).onComplete(eq(mListener), eq(false));
+        verify(mMockPhone, times(2)).setRadioPower(eq(true),
+                eq(true), eq(true), eq(false));
     }
 }
diff --git a/tests/src/com/android/services/telephony/TelephonyConferenceControllerTest.java b/tests/src/com/android/services/telephony/TelephonyConferenceControllerTest.java
index 275bcc6..cfdc2fd 100644
--- a/tests/src/com/android/services/telephony/TelephonyConferenceControllerTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConferenceControllerTest.java
@@ -16,6 +16,13 @@
 
 package com.android.services.telephony;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 import android.os.Looper;
 import android.telecom.Conference;
 import android.telecom.Connection;
@@ -23,18 +30,9 @@
 
 import org.junit.Before;
 import org.junit.Test;
-
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.mockito.ArgumentCaptor;
-
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.any;
-
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -50,7 +48,7 @@
     private TelephonyConnectionServiceProxy mMockTelephonyConnectionServiceProxy;
 
     @Mock
-    private Conference.Listener mMockListener;
+    private TelephonyConferenceBase.TelephonyConferenceListener mMockListener;
 
     private TestTelephonyConnection mTestTelephonyConnectionA;
     private TestTelephonyConnection mTestTelephonyConnectionB;
@@ -94,8 +92,8 @@
         // add telephony connection A
         mControllerTest.add(mTestTelephonyConnectionA);
 
-        mTestTelephonyConnectionA.setActive();
-        mTestTelephonyConnectionB.setOnHold();
+        mTestTelephonyConnectionA.setTelephonyConnectionActive();
+        mTestTelephonyConnectionB.setTelephonyConnectionOnHold();
 
         assertTrue(mTestTelephonyConnectionA.getConferenceables()
                 .contains(mTestTelephonyConnectionB));
@@ -146,8 +144,8 @@
         // add telephony connection A
         mControllerTest.add(mTestTelephonyConnectionA);
 
-        mTestTelephonyConnectionA.setActive();
-        mTestTelephonyConnectionB.setOnHold();
+        mTestTelephonyConnectionA.setTelephonyConnectionActive();
+        mTestTelephonyConnectionB.setTelephonyConnectionOnHold();
 
         assertTrue(mTestTelephonyConnectionA.getConferenceables()
                 .contains(mTestTelephonyConnectionB));
@@ -160,7 +158,7 @@
         verify(mMockTelephonyConnectionServiceProxy).addConference(argumentCaptor.capture());
 
         // add a listener to the added conference
-        argumentCaptor.getValue().addListener(mMockListener);
+        argumentCaptor.getValue().addTelephonyConferenceListener(mMockListener);
 
         verify(mMockListener, never()).onDestroyed(any(Conference.class));
 
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
index 583b498..2060e6f 100644
--- a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
@@ -16,15 +16,20 @@
 
 package com.android.services.telephony;
 
+import static com.android.internal.telephony.RILConstants.GSM_PHONE;
+
 import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertFalse;
 import static junit.framework.Assert.assertNotNull;
 import static junit.framework.Assert.assertTrue;
 import static junit.framework.Assert.fail;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
@@ -37,6 +42,8 @@
 import android.os.AsyncResult;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Message;
 import android.telecom.ConnectionRequest;
 import android.telecom.DisconnectCause;
 import android.telecom.PhoneAccountHandle;
@@ -55,6 +62,7 @@
 import com.android.internal.telephony.Connection;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneSwitcher;
+import com.android.internal.telephony.ServiceStateTracker;
 import com.android.internal.telephony.emergency.EmergencyNumberTracker;
 import com.android.internal.telephony.gsm.SuppServiceNotification;
 
@@ -90,6 +98,7 @@
     private static final PhoneAccountHandle PHONE_ACCOUNT_HANDLE_2 = new PhoneAccountHandle(
             TEST_COMPONENT_NAME, TEST_ACCOUNT_ID2);
     private static final Uri TEST_ADDRESS = Uri.parse("tel:+16505551212");
+    private android.telecom.Connection mConnection;
 
     @Mock TelephonyConnectionService.TelephonyManagerProxy mTelephonyManagerProxy;
     @Mock TelephonyConnectionService.SubscriptionManagerProxy mSubscriptionManagerProxy;
@@ -98,9 +107,13 @@
     @Mock TelephonyConnectionService.PhoneSwitcherProxy mPhoneSwitcherProxy;
     @Mock TelephonyConnectionService.PhoneNumberUtilsProxy mPhoneNumberUtilsProxy;
     @Mock TelephonyConnectionService.PhoneUtilsProxy mPhoneUtilsProxy;
+    @Mock TelephonyConnectionService.HandlerFactory mHandlerFactory;
     @Mock TelephonyConnectionService.DisconnectCauseFactory mDisconnectCauseFactory;
+    @Mock Handler mMockHandler;
     @Mock EmergencyNumberTracker mEmergencyNumberTracker;
     @Mock PhoneSwitcher mPhoneSwitcher;
+    @Mock RadioOnHelper mRadioOnHelper;
+    @Mock ServiceStateTracker mSST;
 
     private static class TestTelephonyConnectionService extends TelephonyConnectionService {
 
@@ -130,9 +143,17 @@
         doReturn(false).when(mDeviceState).shouldCheckSimStateBeforeOutgoingCall(any());
         mTestConnectionService.setPhoneSwitcherProxy(mPhoneSwitcherProxy);
         doReturn(mPhoneSwitcher).when(mPhoneSwitcherProxy).getPhoneSwitcher();
+        when(mPhoneNumberUtilsProxy.convertToEmergencyNumber(any(), anyString()))
+                .thenAnswer(invocation -> invocation.getArgument(1));
         mTestConnectionService.setPhoneNumberUtilsProxy(mPhoneNumberUtilsProxy);
         mTestConnectionService.setPhoneUtilsProxy(mPhoneUtilsProxy);
+        HandlerThread mockHandlerThread = mock(HandlerThread.class);
+        doReturn(mockHandlerThread).when(mHandlerFactory).createHandlerThread(anyString());
+        doReturn(null).when(mockHandlerThread).getLooper();
+        doReturn(mMockHandler).when(mHandlerFactory).createHandler(any());
+        mTestConnectionService.setHandlerFactory(mHandlerFactory);
         mTestConnectionService.setDeviceState(mDeviceState);
+        mTestConnectionService.setRadioOnHelper(mRadioOnHelper);
         doReturn(new DisconnectCause(DisconnectCause.UNKNOWN)).when(mDisconnectCauseFactory)
                 .toTelecomDisconnectCause(anyInt(), any());
         doReturn(new DisconnectCause(DisconnectCause.UNKNOWN)).when(mDisconnectCauseFactory)
@@ -336,6 +357,37 @@
 
     /**
      * Prerequisites:
+     * - MSIM Device, only slot 1 inserted and PUK locked
+     * - slot 1 has higher capabilities
+     *
+     * Result: getFirstPhoneForEmergencyCall returns the slot 1 phone because it is the only one
+     * with a SIM inserted (even if it is PUK locked)
+     */
+    @Test
+    @SmallTest
+    public void testSlot1PinLockedAndSlot0Absent() {
+        Phone slot0Phone = makeTestPhone(SLOT_0_PHONE_ID, ServiceState.STATE_OUT_OF_SERVICE,
+                false /*isEmergencyOnly*/);
+        Phone slot1Phone = makeTestPhone(SLOT_1_PHONE_ID, ServiceState.STATE_OUT_OF_SERVICE,
+                false /*isEmergencyOnly*/);
+        setDefaultPhone(slot0Phone);
+        setupDeviceConfig(slot0Phone, slot1Phone, SLOT_0_PHONE_ID);
+        setPhoneSlotState(SLOT_0_PHONE_ID, TelephonyManager.SIM_STATE_ABSENT);
+        setPhoneSlotState(SLOT_1_PHONE_ID, TelephonyManager.SIM_STATE_PIN_REQUIRED);
+        // Slot 1 has more capabilities
+        setPhoneRadioAccessFamily(slot0Phone, RadioAccessFamily.RAF_GSM);
+        setPhoneRadioAccessFamily(slot1Phone, RadioAccessFamily.RAF_LTE);
+        // Slot 1 has SIM inserted.
+        setSlotHasIccCard(SLOT_0_PHONE_ID, false /*isInserted*/);
+        setSlotHasIccCard(SLOT_1_PHONE_ID, true /*isInserted*/);
+
+        Phone resultPhone = mTestConnectionService.getFirstPhoneForEmergencyCall();
+
+        assertEquals(slot1Phone, resultPhone);
+    }
+
+    /**
+     * Prerequisites:
      * - MSIM Device, two slots with SIMs inserted
      * - Slot 1 is LTE capable, Slot 0 is GSM capable
      *
@@ -879,11 +931,9 @@
     @Test
     @SmallTest
     public void testCreateOutgoingEmergencyConnection_delayDial_carrierconfig_dds() {
-        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
-                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
-                .setAddress(TEST_ADDRESS)
-                .build();
         Phone testPhone = setupConnectionServiceForDelayDial();
+        Runnable delayDialRunnable = verifyRunnablePosted();
+
         // Setup test to not support SUPL on the non-DDS subscription
         doReturn(true).when(mDeviceState).isSuplDdsSwitchRequiredForEmergencyCall(any());
         getTestContext().getCarrierConfig().putStringArray(
@@ -895,27 +945,80 @@
                 CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_DP_ONLY);
         getTestContext().getCarrierConfig().putString(
                 CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "150");
-
-        android.telecom.Connection testConnection = mTestConnectionService
-                .onCreateOutgoingConnection(PHONE_ACCOUNT_HANDLE_1, connectionRequest);
-        assertNotNull("test connection was not set up correctly.", testConnection);
+        delayDialRunnable.run();
 
         verify(mPhoneSwitcher).overrideDefaultDataForEmergency(eq(0) /*phoneId*/ ,
                 eq(150) /*extensionTime*/, any());
     }
 
     /**
+     * Test that the TelephonyConnectionService successfully turns radio on before placing the
+     * emergency call.
+     */
+    @Test
+    @SmallTest
+    public void testCreateOutgoingEmerge_exitingApm_disconnected() {
+        when(mDeviceState.isAirplaneModeOn(any())).thenReturn(true);
+        Phone testPhone = setupConnectionServiceInApm();
+
+        ArgumentCaptor<RadioOnStateListener.Callback> callback =
+                ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
+        verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
+                eq(testPhone));
+
+        assertFalse(callback.getValue().isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE));
+        when(mSST.isRadioOn()).thenReturn(true);
+        assertTrue(callback.getValue().isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE));
+
+        mConnection.setDisconnected(null);
+        callback.getValue().onComplete(null, true);
+        for (Phone phone : mPhoneFactoryProxy.getPhones()) {
+            verify(phone).setRadioPower(true, false, false, true);
+        }
+    }
+
+    /**
+     * Test that the TelephonyConnectionService successfully turns radio on before placing the
+     * emergency call.
+     */
+    @Test
+    @SmallTest
+    public void testCreateOutgoingEmergencyConnection_exitingApm_placeCall() {
+        when(mDeviceState.isAirplaneModeOn(any())).thenReturn(true);
+        Phone testPhone = setupConnectionServiceInApm();
+
+        ArgumentCaptor<RadioOnStateListener.Callback> callback =
+                ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
+        verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
+                eq(testPhone));
+
+        assertFalse(callback.getValue().isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE));
+        when(mSST.isRadioOn()).thenReturn(true);
+        assertTrue(callback.getValue().isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE));
+
+        callback.getValue().onComplete(null, true);
+        Runnable delayDialRunnable = verifyRunnablePosted();
+
+        try {
+            doAnswer(invocation -> null).when(mContext).startActivity(any());
+            delayDialRunnable.run();
+            verify(testPhone).dial(anyString(), any());
+        } catch (CallStateException e) {
+            // This shouldn't happen
+            fail();
+        }
+    }
+
+    /**
      * Test that the TelephonyConnectionService does not perform a DDS switch when the carrier
      * supports control-plane fallback.
      */
     @Test
     @SmallTest
     public void testCreateOutgoingEmergencyConnection_delayDial_nocarrierconfig() {
-        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
-                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
-                .setAddress(TEST_ADDRESS)
-                .build();
         Phone testPhone = setupConnectionServiceForDelayDial();
+        Runnable delayDialRunnable = verifyRunnablePosted();
+
         // Setup test to not support SUPL on the non-DDS subscription
         doReturn(true).when(mDeviceState).isSuplDdsSwitchRequiredForEmergencyCall(any());
         getTestContext().getCarrierConfig().putStringArray(
@@ -927,10 +1030,7 @@
                 CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_CP_FALLBACK);
         getTestContext().getCarrierConfig().putString(
                 CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
-
-        android.telecom.Connection testConnection = mTestConnectionService
-                .onCreateOutgoingConnection(PHONE_ACCOUNT_HANDLE_1, connectionRequest);
-        assertNotNull("test connection was not set up correctly.", testConnection);
+        delayDialRunnable.run();
 
         verify(mPhoneSwitcher, never()).overrideDefaultDataForEmergency(anyInt(), anyInt(), any());
     }
@@ -942,11 +1042,9 @@
     @Test
     @SmallTest
     public void testCreateOutgoingEmergencyConnection_delayDial_supportsuplondds() {
-        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
-                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
-                .setAddress(TEST_ADDRESS)
-                .build();
         Phone testPhone = setupConnectionServiceForDelayDial();
+        Runnable delayDialRunnable = verifyRunnablePosted();
+
         // If the non-DDS supports SUPL, dont switch data
         doReturn(false).when(mDeviceState).isSuplDdsSwitchRequiredForEmergencyCall(any());
         getTestContext().getCarrierConfig().putStringArray(
@@ -958,10 +1056,7 @@
                 CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_DP_ONLY);
         getTestContext().getCarrierConfig().putString(
                 CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
-
-        android.telecom.Connection testConnection = mTestConnectionService
-                .onCreateOutgoingConnection(PHONE_ACCOUNT_HANDLE_1, connectionRequest);
-        assertNotNull("test connection was not set up correctly.", testConnection);
+        delayDialRunnable.run();
 
         verify(mPhoneSwitcher, never()).overrideDefaultDataForEmergency(anyInt(), anyInt(), any());
     }
@@ -973,11 +1068,9 @@
     @Test
     @SmallTest
     public void testCreateOutgoingEmergencyConnection_delayDial_roaming_nocarrierconfig() {
-        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
-                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
-                .setAddress(TEST_ADDRESS)
-                .build();
         Phone testPhone = setupConnectionServiceForDelayDial();
+        Runnable delayDialRunnable = verifyRunnablePosted();
+
         // Setup test to not support SUPL on the non-DDS subscription
         doReturn(true).when(mDeviceState).isSuplDdsSwitchRequiredForEmergencyCall(any());
         getTestContext().getCarrierConfig().putStringArray(
@@ -989,10 +1082,7 @@
                 CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_DP_ONLY);
         getTestContext().getCarrierConfig().putString(
                 CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
-
-        android.telecom.Connection testConnection = mTestConnectionService
-                .onCreateOutgoingConnection(PHONE_ACCOUNT_HANDLE_1, connectionRequest);
-        assertNotNull("test connection was not set up correctly.", testConnection);
+        delayDialRunnable.run();
 
         verify(mPhoneSwitcher, never()).overrideDefaultDataForEmergency(anyInt(), anyInt(), any());
     }
@@ -1005,11 +1095,9 @@
     @Test
     @SmallTest
     public void testCreateOutgoingEmergencyConnection_delayDial_roamingcarrierconfig() {
-        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
-                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
-                .setAddress(TEST_ADDRESS)
-                .build();
         Phone testPhone = setupConnectionServiceForDelayDial();
+        Runnable delayDialRunnable = verifyRunnablePosted();
+
         // Setup voice roaming scenario
         String testRoamingOperator = "001001";
         // In some roaming conditions, we are not technically "roaming"
@@ -1027,10 +1115,7 @@
                 CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_CP_FALLBACK);
         getTestContext().getCarrierConfig().putString(
                 CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
-
-        android.telecom.Connection testConnection = mTestConnectionService
-                .onCreateOutgoingConnection(PHONE_ACCOUNT_HANDLE_1, connectionRequest);
-        assertNotNull("test connection was not set up correctly.", testConnection);
+        delayDialRunnable.run();
 
         verify(mPhoneSwitcher).overrideDefaultDataForEmergency(eq(0) /*phoneId*/ ,
                 eq(0) /*extensionTime*/, any());
@@ -1044,11 +1129,9 @@
     @Test
     @SmallTest
     public void testCreateOutgoingEmergencyConnection_delayDial__roaming_roamingcarrierconfig() {
-        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
-                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
-                .setAddress(TEST_ADDRESS)
-                .build();
         Phone testPhone = setupConnectionServiceForDelayDial();
+        Runnable delayDialRunnable = verifyRunnablePosted();
+
         // Setup voice roaming scenario
         String testRoamingOperator = "001001";
         testPhone.getServiceState().setRoaming(true);
@@ -1065,10 +1148,7 @@
                 CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_CP_FALLBACK);
         getTestContext().getCarrierConfig().putString(
                 CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
-
-        android.telecom.Connection testConnection = mTestConnectionService
-                .onCreateOutgoingConnection(PHONE_ACCOUNT_HANDLE_1, connectionRequest);
-        assertNotNull("test connection was not set up correctly.", testConnection);
+        delayDialRunnable.run();
 
         verify(mPhoneSwitcher).overrideDefaultDataForEmergency(eq(0) /*phoneId*/ ,
                 eq(0) /*extensionTime*/, any());
@@ -1079,6 +1159,10 @@
      * @return the Phone associated with slot 0.
      */
     private Phone setupConnectionServiceForDelayDial() {
+        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
+                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
+                .setAddress(TEST_ADDRESS)
+                .build();
         Phone testPhone0 = makeTestPhone(0 /*phoneId*/, ServiceState.STATE_IN_SERVICE,
                 false /*isEmergencyOnly*/);
         Phone testPhone1 = makeTestPhone(1 /*phoneId*/, ServiceState.STATE_OUT_OF_SERVICE,
@@ -1100,9 +1184,62 @@
         doReturn(emergencyNumbers).when(mTelephonyManagerProxy).getCurrentEmergencyNumberList();
         doReturn(2).when(mTelephonyManagerProxy).getPhoneCount();
 
+        mConnection = mTestConnectionService.onCreateOutgoingConnection(
+                PHONE_ACCOUNT_HANDLE_1, connectionRequest);
+        assertNotNull("test connection was not set up correctly.", mConnection);
+
         return testPhone0;
     }
 
+
+    /**
+     * Set up a mock MSIM device with TEST_ADDRESS set as an emergency number in airplane mode.
+     * @return the Phone associated with slot 0.
+     */
+    private Phone setupConnectionServiceInApm() {
+        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
+                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
+                .setAddress(TEST_ADDRESS)
+                .build();
+        Phone testPhone0 = makeTestPhone(0 /*phoneId*/, ServiceState.STATE_POWER_OFF,
+                false /*isEmergencyOnly*/);
+        Phone testPhone1 = makeTestPhone(1 /*phoneId*/, ServiceState.STATE_POWER_OFF,
+                false /*isEmergencyOnly*/);
+        doReturn(GSM_PHONE).when(testPhone0).getPhoneType();
+        doReturn(GSM_PHONE).when(testPhone1).getPhoneType();
+        List<Phone> phones = new ArrayList<>(2);
+        doReturn(false).when(testPhone0).isRadioOn();
+        doReturn(false).when(testPhone1).isRadioOn();
+        phones.add(testPhone0);
+        phones.add(testPhone1);
+        setPhones(phones);
+        setupHandleToPhoneMap(PHONE_ACCOUNT_HANDLE_1, testPhone0);
+        setupDeviceConfig(testPhone0, testPhone1, 0);
+        doReturn(true).when(mTelephonyManagerProxy).isCurrentEmergencyNumber(
+                TEST_ADDRESS.getSchemeSpecificPart());
+        HashMap<Integer, List<EmergencyNumber>> emergencyNumbers = new HashMap<>(1);
+        List<EmergencyNumber> numbers = new ArrayList<>();
+        numbers.add(setupEmergencyNumber(TEST_ADDRESS));
+        emergencyNumbers.put(0 /*subId*/, numbers);
+        doReturn(emergencyNumbers).when(mTelephonyManagerProxy).getCurrentEmergencyNumberList();
+        doReturn(2).when(mTelephonyManagerProxy).getPhoneCount();
+
+        mConnection = mTestConnectionService.onCreateOutgoingConnection(
+                PHONE_ACCOUNT_HANDLE_1, connectionRequest);
+        assertNotNull("test connection was not set up correctly.", mConnection);
+
+        return testPhone0;
+    }
+
+    private Runnable verifyRunnablePosted() {
+        ArgumentCaptor<Message> runnableCaptor = ArgumentCaptor.forClass(Message.class);
+        verify(mMockHandler).sendMessageDelayed(runnableCaptor.capture(), anyLong());
+        assertNotNull("Invalid Message created", runnableCaptor.getValue());
+        Runnable runnable = runnableCaptor.getValue().getCallback();
+        assertNotNull("sendMessageDelayed never occurred.", runnableCaptor);
+        return runnable;
+    }
+
     private EmergencyNumber setupEmergencyNumber(Uri address) {
         return new EmergencyNumber(address.getSchemeSpecificPart(), "", "",
         EmergencyNumber.EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED,
@@ -1134,6 +1271,9 @@
         when(phone.getServiceState()).thenReturn(testServiceState);
         when(phone.getPhoneId()).thenReturn(phoneId);
         when(phone.getDefaultPhone()).thenReturn(phone);
+        when(phone.getEmergencyNumberTracker()).thenReturn(mEmergencyNumberTracker);
+        when(phone.getServiceStateTracker()).thenReturn(mSST);
+        when(mEmergencyNumberTracker.getEmergencyNumber(anyString())).thenReturn(null);
         return phone;
     }
 
@@ -1163,6 +1303,7 @@
 
     private void setPhones(List<Phone> phones) {
         when(mPhoneFactoryProxy.getPhones()).thenReturn(phones.toArray(new Phone[phones.size()]));
+        when(mPhoneFactoryProxy.getDefaultPhone()).thenReturn(phones.get(0));
     }
 
     private void setPhonesDialConnection(Phone phone, Connection c) {
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionTest.java
new file mode 100644
index 0000000..7d15680
--- /dev/null
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionTest.java
@@ -0,0 +1,25 @@
+package com.android.services.telephony;
+
+import static junit.framework.Assert.assertEquals;
+
+import android.os.Bundle;
+import android.telecom.Connection;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import androidx.test.runner.AndroidJUnit4;
+
+@RunWith(AndroidJUnit4.class)
+public class TelephonyConnectionTest {
+
+    @Test
+    public void testCodecInIms() {
+        TestTelephonyConnection c = new TestTelephonyConnection();
+        c.updateState();
+        Bundle extras = c.getExtras();
+        int codec = extras.getInt(Connection.EXTRA_AUDIO_CODEC, Connection.AUDIO_CODEC_NONE);
+        assertEquals(codec, Connection.AUDIO_CODEC_AMR);
+    }
+
+}
diff --git a/tests/src/com/android/services/telephony/TestTelephonyConnection.java b/tests/src/com/android/services/telephony/TestTelephonyConnection.java
index c4d6568..5b31c0f 100644
--- a/tests/src/com/android/services/telephony/TestTelephonyConnection.java
+++ b/tests/src/com/android/services/telephony/TestTelephonyConnection.java
@@ -24,6 +24,7 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -32,6 +33,7 @@
 import com.android.internal.telephony.Connection;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.emergency.EmergencyNumberTracker;
 
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
@@ -57,6 +59,9 @@
     @Mock
     Resources mMockResources;
 
+    @Mock
+    EmergencyNumberTracker mEmergencyNumberTracker;
+
     private Phone mMockPhone;
     private int mNotifyPhoneAccountChangedCount = 0;
     private List<String> mLastConnectionEvents = new ArrayList<>();
@@ -76,11 +81,16 @@
         mOriginalConnection = mock(Connection.class);
         // Set up mMockRadioConnection and mMockPhone to contain an active call
         when(mMockRadioConnection.getState()).thenReturn(Call.State.ACTIVE);
+        when(mOriginalConnection.getState()).thenReturn(Call.State.ACTIVE);
+        when(mMockRadioConnection.getAudioCodec()).thenReturn(
+                android.telecom.Connection.AUDIO_CODEC_AMR);
         when(mMockRadioConnection.getCall()).thenReturn(mMockCall);
         when(mMockRadioConnection.getPhoneType()).thenReturn(PhoneConstants.PHONE_TYPE_IMS);
         doNothing().when(mMockRadioConnection).addListener(any(Connection.Listener.class));
         doNothing().when(mMockRadioConnection).addPostDialListener(
                 any(Connection.PostDialListener.class));
+        when(mEmergencyNumberTracker.getEmergencyNumber(anyString())).thenReturn(null);
+        when(mMockPhone.getEmergencyNumberTracker()).thenReturn(mEmergencyNumberTracker);
         when(mMockPhone.getRingingCall()).thenReturn(mMockCall);
         when(mMockPhone.getContext()).thenReturn(mMockContext);
         when(mMockPhone.getCurrentSubscriberUris()).thenReturn(null);
@@ -134,6 +144,16 @@
     }
 
     @Override
+    public CharSequence getResourceText(int messageId) {
+        return "TEST";
+    }
+
+    @Override
+    public String getResourceString(int id) {
+        return "TEST";
+    }
+
+    @Override
     void refreshConferenceSupported() {
         // Requires ImsManager dependencies, do not implement during testing.
     }
diff --git a/tests/src/com/android/services/telephony/rcs/RcsFeatureControllerTest.java b/tests/src/com/android/services/telephony/rcs/RcsFeatureControllerTest.java
new file mode 100644
index 0000000..fbb270d
--- /dev/null
+++ b/tests/src/com/android/services/telephony/rcs/RcsFeatureControllerTest.java
@@ -0,0 +1,283 @@
+/*
+ * Copyright (C) 2020 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.services.telephony.rcs;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import android.telephony.AccessNetworkConstants;
+import android.telephony.ims.ImsException;
+import android.telephony.ims.ImsReasonInfo;
+import android.telephony.ims.RegistrationManager;
+import android.telephony.ims.aidl.IImsCapabilityCallback;
+import android.telephony.ims.aidl.IImsRegistrationCallback;
+import android.telephony.ims.feature.RcsFeature;
+import android.telephony.ims.stub.ImsRegistrationImplBase;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.TelephonyTestBase;
+import com.android.ims.FeatureConnector;
+import com.android.ims.RcsFeatureManager;
+import com.android.internal.telephony.imsphone.ImsRegistrationCallbackHelper;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+
+import java.util.concurrent.Executor;
+
+@RunWith(AndroidJUnit4.class)
+public class RcsFeatureControllerTest extends TelephonyTestBase {
+
+    private static final ImsReasonInfo REASON_DISCONNECTED = new ImsReasonInfo(
+            ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN, 0, "test");
+
+    @Mock RcsFeatureManager mFeatureManager;
+    @Mock RcsFeatureController.FeatureConnectorFactory<RcsFeatureManager> mFeatureFactory;
+    @Mock ImsRegistrationCallbackHelper.ImsRegistrationUpdate mRegistrationCallback;
+    @Mock FeatureConnector<RcsFeatureManager> mFeatureConnector;
+    @Mock RcsFeatureController.Feature mMockFeature;
+    @Captor ArgumentCaptor<FeatureConnector.Listener<RcsFeatureManager>> mConnectorListener;
+
+    private RcsFeatureController.RegistrationHelperFactory mRegistrationFactory =
+            new RcsFeatureController.RegistrationHelperFactory() {
+                @Override
+                public ImsRegistrationCallbackHelper create(
+                        ImsRegistrationCallbackHelper.ImsRegistrationUpdate cb, Executor executor) {
+                    // Run on current thread for testing.
+                    return new ImsRegistrationCallbackHelper(mRegistrationCallback, Runnable::run);
+                }
+            };
+
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    @Test
+    public void testRcsFeatureManagerConnectDisconnect() throws Exception {
+        RcsFeatureController controller = createFeatureController();
+        controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
+        verify(mMockFeature).onRcsDisconnected();
+        // Connect the RcsFeatureManager
+        mConnectorListener.getValue().connectionReady(mFeatureManager);
+
+        verify(mFeatureManager).updateCapabilities();
+        verify(mFeatureManager).registerImsRegistrationCallback(any());
+        verify(mMockFeature).onRcsConnected(mFeatureManager);
+
+        // Disconnect
+        mConnectorListener.getValue().connectionUnavailable();
+
+        verify(mFeatureManager).unregisterImsRegistrationCallback(any());
+        verify(mMockFeature, times(2)).onRcsDisconnected();
+    }
+
+    @Test
+    public void testFeatureManagerConnectedAddRemoveFeature() throws Exception {
+        RcsFeatureController controller = createFeatureController();
+        // Connect the RcsFeatureManager
+        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
+
+        verify(mMockFeature).onRcsConnected(mFeatureManager);
+        assertEquals(mMockFeature, controller.getFeature(RcsFeatureController.Feature.class));
+
+        controller.removeFeature(RcsFeatureController.Feature.class);
+        verify(mMockFeature).onDestroy();
+        assertNull(controller.getFeature(RcsFeatureController.Feature.class));
+    }
+
+    @Test
+    public void testFeatureManagerConnectedRegister() throws Exception {
+        RcsFeatureController controller = createFeatureController();
+        IImsRegistrationCallback regCb = mock(IImsRegistrationCallback.class);
+        IImsCapabilityCallback capCb = mock(IImsCapabilityCallback.class);
+        // Connect the RcsFeatureManager
+        mConnectorListener.getValue().connectionReady(mFeatureManager);
+
+        try {
+            controller.registerImsRegistrationCallback(0 /*subId*/, regCb);
+            controller.registerRcsAvailabilityCallback(0 /*subId*/, capCb);
+            controller.isCapable(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE,
+                    ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
+            controller.isAvailable(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE);
+            controller.getRegistrationTech(integer -> {
+            });
+            verify(mFeatureManager).registerImsRegistrationCallback(0, regCb);
+            verify(mFeatureManager).registerRcsAvailabilityCallback(0, capCb);
+            verify(mFeatureManager).isCapable(
+                    RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE,
+                    ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
+            verify(mFeatureManager).isAvailable(
+                    RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE);
+            verify(mFeatureManager).getImsRegistrationTech(any());
+        } catch (ImsException e) {
+            fail("ImsException not expected.");
+        }
+
+        controller.unregisterImsRegistrationCallback(0, regCb);
+        controller.unregisterRcsAvailabilityCallback(0, capCb);
+        verify(mFeatureManager).unregisterImsRegistrationCallback(0, regCb);
+        verify(mFeatureManager).unregisterRcsAvailabilityCallback(0, capCb);
+    }
+
+    @Test
+    public void testFeatureManagerConnectedHelper() throws Exception {
+        RcsFeatureController controller = createFeatureController();
+        // Connect the RcsFeatureManager
+        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        ArgumentCaptor<IImsRegistrationCallback> captor =
+                ArgumentCaptor.forClass(IImsRegistrationCallback.class);
+        verify(mFeatureManager).registerImsRegistrationCallback(captor.capture());
+        assertNotNull(captor.getValue());
+
+        captor.getValue().onDeregistered(REASON_DISCONNECTED);
+        controller.getRegistrationState(result -> {
+            assertNotNull(result);
+            assertEquals(RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED, result.intValue());
+        });
+        verify(mRegistrationCallback).handleImsUnregistered(REASON_DISCONNECTED);
+
+        captor.getValue().onRegistering(ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
+        controller.getRegistrationState(result -> {
+            assertNotNull(result);
+            assertEquals(RegistrationManager.REGISTRATION_STATE_REGISTERING, result.intValue());
+        });
+        verify(mRegistrationCallback).handleImsRegistering(
+                AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
+
+        captor.getValue().onRegistered(ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
+        controller.getRegistrationState(result -> {
+            assertNotNull(result);
+            assertEquals(RegistrationManager.REGISTRATION_STATE_REGISTERED, result.intValue());
+        });
+        verify(mRegistrationCallback).handleImsRegistered(
+                AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
+    }
+
+    @Test
+    public void testFeatureManagerDisconnectedAddFeature() {
+        RcsFeatureController controller = createFeatureController();
+        // Disconnect the RcsFeatureManager
+        mConnectorListener.getValue().connectionUnavailable();
+        controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
+
+        verify(mMockFeature).onRcsDisconnected();
+    }
+
+    @Test
+    public void testFeatureManagerDisconnectedException() {
+        RcsFeatureController controller = createFeatureController();
+        IImsRegistrationCallback regCb = mock(IImsRegistrationCallback.class);
+        IImsCapabilityCallback capCb = mock(IImsCapabilityCallback.class);
+        // Disconnect the RcsFeatureManager
+        mConnectorListener.getValue().connectionUnavailable();
+
+        try {
+            controller.registerImsRegistrationCallback(0 /*subId*/, null /*callback*/);
+            fail("ImsException expected for IMS registration.");
+        } catch (ImsException e) {
+            //expected
+        }
+        try {
+            controller.registerRcsAvailabilityCallback(0 /*subId*/, null /*callback*/);
+            fail("ImsException expected for availability");
+        } catch (ImsException e) {
+            //expected
+        }
+        try {
+            controller.isCapable(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE,
+                    ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
+            fail("ImsException expected for capability check");
+        } catch (ImsException e) {
+            //expected
+        }
+        try {
+            controller.isAvailable(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE);
+            fail("ImsException expected for availability check");
+        } catch (ImsException e) {
+            //expected
+        }
+        controller.getRegistrationTech(integer -> {
+            assertNotNull(integer);
+            assertEquals(ImsRegistrationImplBase.REGISTRATION_TECH_NONE, integer.intValue());
+        });
+        controller.unregisterImsRegistrationCallback(0, regCb);
+        controller.unregisterRcsAvailabilityCallback(0, capCb);
+        verify(mFeatureManager, never()).unregisterImsRegistrationCallback(0, regCb);
+        verify(mFeatureManager, never()).unregisterRcsAvailabilityCallback(0, capCb);
+    }
+
+    @Test
+    public void testChangeSubId() throws Exception {
+        RcsFeatureController controller = createFeatureController();
+        // Connect the RcsFeatureManager
+        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        verify(mFeatureManager).updateCapabilities();
+        controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
+
+        controller.updateAssociatedSubscription(1 /*new sub id*/);
+
+        verify(mFeatureManager, times(2)).updateCapabilities();
+        verify(mMockFeature).onAssociatedSubscriptionUpdated(1 /*new sub id*/);
+    }
+
+    @Test
+    public void testDestroy() throws Exception {
+        RcsFeatureController controller = createFeatureController();
+        // Connect the RcsFeatureManager
+        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
+        controller.destroy();
+
+        verify(mFeatureConnector).disconnect();
+        verify(mMockFeature).onRcsDisconnected();
+        verify(mMockFeature).onDestroy();
+        assertNull(controller.getFeature(RcsFeatureController.Feature.class));
+    }
+
+    private RcsFeatureController createFeatureController() {
+        RcsFeatureController controller = new RcsFeatureController(mContext, 0 /*slotId*/,
+                mRegistrationFactory);
+        controller.setFeatureConnectorFactory(mFeatureFactory);
+        doReturn(mFeatureConnector).when(mFeatureFactory).create(any(), anyInt(),
+                mConnectorListener.capture(), any(), any());
+        controller.connect();
+        assertNotNull(mConnectorListener.getValue());
+        return controller;
+    }
+}
diff --git a/tests/src/com/android/services/telephony/rcs/TelephonyRcsServiceTest.java b/tests/src/com/android/services/telephony/rcs/TelephonyRcsServiceTest.java
new file mode 100644
index 0000000..cfb68b7
--- /dev/null
+++ b/tests/src/com/android/services/telephony/rcs/TelephonyRcsServiceTest.java
@@ -0,0 +1,249 @@
+/*
+ * Copyright (C) 2020 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.services.telephony.rcs;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import android.content.BroadcastReceiver;
+import android.content.Intent;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.TelephonyTestBase;
+import com.android.ims.FeatureConnector;
+import com.android.ims.RcsFeatureManager;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+
+@RunWith(AndroidJUnit4.class)
+public class TelephonyRcsServiceTest extends TelephonyTestBase {
+
+    @Captor ArgumentCaptor<BroadcastReceiver> mReceiverCaptor;
+    @Mock TelephonyRcsService.FeatureFactory mFeatureFactory;
+    @Mock UserCapabilityExchangeImpl mMockUceSlot0;
+    @Mock UserCapabilityExchangeImpl mMockUceSlot1;
+    @Mock RcsFeatureController.RegistrationHelperFactory mRegistrationFactory;
+    @Mock RcsFeatureController.FeatureConnectorFactory<RcsFeatureManager> mFeatureConnectorFactory;
+    @Mock FeatureConnector<RcsFeatureManager> mFeatureConnector;
+
+    private RcsFeatureController mFeatureControllerSlot0;
+    private RcsFeatureController mFeatureControllerSlot1;
+
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+        doReturn(mFeatureConnector).when(mFeatureConnectorFactory).create(any(), anyInt(),
+                any(), any(), any());
+        mFeatureControllerSlot0 = createFeatureController(0 /*slotId*/);
+        mFeatureControllerSlot1 = createFeatureController(1 /*slotId*/);
+        doReturn(mFeatureControllerSlot0).when(mFeatureFactory).createController(any(), eq(0));
+        doReturn(mFeatureControllerSlot1).when(mFeatureFactory).createController(any(), eq(1));
+        doReturn(mMockUceSlot0).when(mFeatureFactory).createUserCapabilityExchange(any(), eq(0),
+                anyInt());
+        doReturn(mMockUceSlot1).when(mFeatureFactory).createUserCapabilityExchange(any(), eq(1),
+                anyInt());
+        //set up default slot-> sub ID mappings.
+        setSlotToSubIdMapping(0 /*slotId*/, 1/*subId*/);
+        setSlotToSubIdMapping(1 /*slotId*/, 2/*subId*/);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    @Test
+    public void testUserCapabilityExchangePresenceConnected() {
+        setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+        createRcsService(1 /*numSlots*/);
+        verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0).connect();
+    }
+
+    @Test
+    public void testUserCapabilityExchangeOptionsConnected() {
+        setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_SIP_OPTIONS_BOOL, true /*isEnabled*/);
+        createRcsService(1 /*numSlots*/);
+        verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0).connect();
+    }
+
+    @Test
+    public void testNoFeaturesEnabled() {
+        createRcsService(1 /*numSlots*/);
+        // No carrier config set for UCE.
+        verify(mFeatureControllerSlot0, never()).addFeature(mMockUceSlot0,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0, never()).connect();
+    }
+
+    @Test
+    public void testNoFeaturesEnabledCarrierConfigChanged() {
+        createRcsService(1 /*numSlots*/);
+        // No carrier config set for UCE.
+
+        sendCarrierConfigChanged(0, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+        verify(mFeatureControllerSlot0, never()).addFeature(mMockUceSlot0,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0, never()).connect();
+        verify(mFeatureControllerSlot0, never()).updateAssociatedSubscription(anyInt());
+    }
+
+
+    @Test
+    public void testSlotUpdates() {
+        setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+        TelephonyRcsService service = createRcsService(1 /*numSlots*/);
+        verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0).connect();
+
+        // there should be no changes if the new num slots = old num
+        service.updateFeatureControllerSize(1 /*newNumSlots*/);
+        verify(mFeatureControllerSlot0, times(1)).addFeature(mMockUceSlot0,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0, times(1)).connect();
+
+        // Add a new slot.
+        verify(mFeatureControllerSlot1, never()).addFeature(mMockUceSlot1,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot1, never()).connect();
+        service.updateFeatureControllerSize(2 /*newNumSlots*/);
+        // This shouldn't have changed for slot 0.
+        verify(mFeatureControllerSlot0, times(1)).addFeature(mMockUceSlot0,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0, times(1)).connect();
+        verify(mFeatureControllerSlot1).addFeature(mMockUceSlot1, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot1, times(1)).connect();
+
+        // Remove a slot.
+        verify(mFeatureControllerSlot0, never()).destroy();
+        verify(mFeatureControllerSlot1, never()).destroy();
+        service.updateFeatureControllerSize(1 /*newNumSlots*/);
+        // addFeature/connect shouldn't have been called again
+        verify(mFeatureControllerSlot0, times(1)).addFeature(mMockUceSlot0,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0, times(1)).connect();
+        verify(mFeatureControllerSlot1, times(1)).addFeature(mMockUceSlot1,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot1, times(1)).connect();
+        // Verify destroy is only called for slot 1.
+        verify(mFeatureControllerSlot0, never()).destroy();
+        verify(mFeatureControllerSlot1, times(1)).destroy();
+    }
+
+    @Test
+    public void testCarrierConfigUpdate() {
+        setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+        createRcsService(2 /*numSlots*/);
+        verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot1).addFeature(mMockUceSlot1, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0).connect();
+        verify(mFeatureControllerSlot1).connect();
+
+
+        // Send carrier config update for each slot.
+        sendCarrierConfigChanged(0 /*slotId*/, 1 /*subId*/);
+        verify(mFeatureControllerSlot0).updateAssociatedSubscription(1);
+        verify(mFeatureControllerSlot1, never()).updateAssociatedSubscription(1);
+        sendCarrierConfigChanged(1 /*slotId*/, 2 /*subId*/);
+        verify(mFeatureControllerSlot0, never()).updateAssociatedSubscription(2);
+        verify(mFeatureControllerSlot1, times(1)).updateAssociatedSubscription(2);
+    }
+
+    @Test
+    public void testCarrierConfigUpdateUceToNoUce() {
+        setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+        createRcsService(1 /*numSlots*/);
+        verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0).connect();
+
+
+        // Send carrier config update for each slot.
+        setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, false /*isEnabled*/);
+        sendCarrierConfigChanged(0 /*slotId*/, 1 /*subId*/);
+        verify(mFeatureControllerSlot0).removeFeature(UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0).updateAssociatedSubscription(1);
+    }
+
+    @Test
+    public void testCarrierConfigUpdateNoUceToUce() {
+        createRcsService(1 /*numSlots*/);
+        verify(mFeatureControllerSlot0, never()).addFeature(mMockUceSlot0,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0, never()).connect();
+
+
+        // Send carrier config update for each slot.
+        setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+        sendCarrierConfigChanged(0 /*slotId*/, 1 /*subId*/);
+        verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0).connect();
+        verify(mFeatureControllerSlot0).updateAssociatedSubscription(1);
+    }
+
+    private void sendCarrierConfigChanged(int slotId, int subId) {
+        Intent intent = new Intent(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
+        intent.putExtra(CarrierConfigManager.EXTRA_SLOT_INDEX, slotId);
+        intent.putExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX, subId);
+        mReceiverCaptor.getValue().onReceive(mContext, intent);
+    }
+
+    private void setCarrierConfig(String key, boolean value) {
+        PersistableBundle bundle = mContext.getCarrierConfig();
+        bundle.putBoolean(key, value);
+    }
+
+    private void setSlotToSubIdMapping(int slotId, int loadedSubId) {
+        SubscriptionManager m = mContext.getSystemService(SubscriptionManager.class);
+        int [] subIds = new int[1];
+        subIds[0] = loadedSubId;
+        doReturn(subIds).when(m).getSubscriptionIds(eq(slotId));
+    }
+
+    private TelephonyRcsService createRcsService(int numSlots) {
+        TelephonyRcsService service = new TelephonyRcsService(mContext, numSlots);
+        service.setFeatureFactory(mFeatureFactory);
+        service.initialize();
+        verify(mContext).registerReceiver(mReceiverCaptor.capture(), any());
+        return service;
+    }
+
+    private RcsFeatureController createFeatureController(int slotId) {
+        // Create a spy instead of a mock because TelephonyRcsService relies on state provided by
+        // RcsFeatureController.
+        RcsFeatureController controller = spy(new RcsFeatureController(mContext, slotId,
+                mRegistrationFactory));
+        controller.setFeatureConnectorFactory(mFeatureConnectorFactory);
+        return controller;
+    }
+}
