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..425440a 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" />
@@ -92,10 +90,14 @@
     <protected-broadcast android:name= "android.telephony.action.SUBSCRIPTION_SPECIFIC_CARRIER_IDENTITY_CHANGED" />
     <protected-broadcast android:name= "android.telephony.action.NETWORK_COUNTRY_CHANGED" />
     <protected-broadcast android:name= "android.telephony.action.PRIMARY_SUBSCRIPTION_LIST_CHANGED" />
+    <protected-broadcast android:name= "android.telephony.action.MULTI_SIM_CONFIG_CHANGED" />
 
     <!-- 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 +130,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 +141,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 +160,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 +175,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" />
@@ -189,6 +196,9 @@
     <uses-permission android:name="android.permission.WRITE_BLOCKED_NUMBERS" />
     <uses-permission android:name="android.permission.NETWORK_SETTINGS" />
 
+    <!-- Needed to register puller to statsd. -->
+    <uses-permission android:name="android.permission.REGISTER_STATS_PULL_ATOM" />
+
     <!-- This tells the activity manager to not delay any of our activity
          start requests, even if they happen immediately after the user
          presses home. -->
@@ -200,6 +210,11 @@
     <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" />
+    <uses-permission android:name="android.permission.NETWORK_STATS_PROVIDER" />
 
     <application android:name="PhoneApp"
             android:persistent="true"
@@ -233,6 +248,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 +288,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">
@@ -454,6 +445,9 @@
             Handler for EuiccManager's resolution intents. These are locked down so that only
             privileged processes can start them, which means we can trust the Intent used to start
             it (which contains a description of the next step to perform after resolution).
+
+            If modified, also change EuiccController#RESOLUTION_ACTIVITY_PACKAGE_NAME and
+            EuiccController#RESOLUTION_ACTIVITY_CLASS_NAME
         -->
         <activity android:name=".euicc.EuiccResolutionUiDispatcherActivity"
             android:permission="android.permission.CALL_PRIVILEGED">
@@ -484,6 +478,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 +500,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 +517,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 +548,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 +646,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/layout/sim_ndp.xml b/res/layout/sim_ndp.xml
index 5e3c472..5f03d7b 100644
--- a/res/layout/sim_ndp.xml
+++ b/res/layout/sim_ndp.xml
@@ -29,6 +29,7 @@
             android:layout_centerInParent="true">
 
         <TextView
+                android:id="@+id/perso_subtype_text"
                 android:textAppearance="?android:attr/textAppearanceMedium"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
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 18a7800..66a8ee8 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>
@@ -375,6 +400,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>
@@ -439,7 +465,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>
@@ -530,6 +556,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>
@@ -557,6 +584,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>
@@ -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">"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>
@@ -748,7 +782,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>
@@ -757,7 +791,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>
@@ -787,4 +820,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..b345a2e 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>
@@ -72,7 +74,7 @@
     <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"የመለያ ቅንብሮችን ይውቀሩ"</string>
     <string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"የሁሉም ደዋይ መለያዎች"</string>
     <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"የትኛዎቹ መለያዎች ጥሪዎችን ማድረግ እንደሚችሉ ይምረጡ"</string>
-    <string name="wifi_calling" msgid="3650509202851355742">"የWi-Fi ጥሪ ማድረጊያ"</string>
+    <string name="wifi_calling" msgid="3650509202851355742">"የWi-Fi ጥሪ"</string>
     <string name="connection_service_default_label" msgid="7332739049855715584">"አብሮ የተገነባ የግንኙነት አገልግሎት"</string>
     <string name="voicemail" msgid="7697769412804195032">"የድምፅ መልዕክት"</string>
     <string name="voicemail_settings_with_label" msgid="4228431668214894138">"የድምጽ መልዕክት (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</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 2efc028..f542184 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>
@@ -172,7 +174,7 @@
     <string name="connect_later" msgid="1950138106010005425">"يتعذر الاتصال بهذه الشبكة في الوقت الحالي. حاول مرة أخرى لاحقًا."</string>
     <string name="registration_done" msgid="5337407023566953292">"مسجل على الشبكة."</string>
     <string name="already_auto" msgid="8607068290733079336">"في التحديد التلقائي فعلاً."</string>
-    <string name="select_automatically" msgid="779750291257872651">"تحديد الشبكة تلقائيًا"</string>
+    <string name="select_automatically" msgid="779750291257872651">"اختيار الشبكة تلقائيًا"</string>
     <string name="manual_mode_disallowed_summary" msgid="3970048592179890197">"‏الشبكات غير متاحة عند الاتصال بمشغِّل شبكة الجوّال %1$s."</string>
     <string name="network_select_title" msgid="4117305053881611988">"الشبكة"</string>
     <string name="register_automatically" msgid="3907580547590554834">"التسجيل التلقائي..."</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>
@@ -624,7 +662,7 @@
     <string name="calling_via_template" msgid="1791323450703751750">"الاتصال عبر <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="7885089213135154834">"صورة جهة الاتصال"</string>
     <string name="goPrivate" msgid="4645108311382209551">"انتقال إلى مكالمة خاصة"</string>
-    <string name="selectContact" msgid="1527612842599767382">"تحديد جهة اتصال"</string>
+    <string name="selectContact" msgid="1527612842599767382">"اختيار جهة اتصال"</string>
     <string name="not_voice_capable" msgid="2819996734252084253">"الاتصال الصوتي غير معتمد"</string>
     <string name="description_dial_button" msgid="8614631902795087259">"طلب"</string>
     <string name="description_dialpad_button" msgid="7395114120463883623">"عرض لوحة الاتصال"</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 c756cb7..6952f90 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -25,10 +25,12 @@
     <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>
-    <string name="cancel" msgid="8984206397635155197">"Адмяніць"</string>
+    <string name="cancel" msgid="8984206397635155197">"Скасаваць"</string>
     <string name="enter_input" msgid="6193628663039958990">"Паведамленне USSD павінна складацца з наступнай колькасцi знакаў:  ад <xliff:g id="MIN_LEN">%1$d</xliff:g> да <xliff:g id="MAX_LEN">%2$d</xliff:g>. Паспрабуйце яшчэ раз."</string>
     <string name="manageConferenceLabel" msgid="8415044818156353233">"Кіраванне канферэнц-выклікам"</string>
     <string name="ok" msgid="7818974223666140165">"ОК"</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>
@@ -281,7 +306,7 @@
     <string name="throttle_current_usage" msgid="7483859109708658613">"Выкарыстанне даных у бягучы перыяд"</string>
     <string name="throttle_time_frame" msgid="1813452485948918791">"Перыяд выкарыстання дадзеных"</string>
     <string name="throttle_rate" msgid="7641913901133634905">"Палітыка хуткасці перадачы дадзеных"</string>
-    <string name="throttle_help" msgid="2624535757028809735">"Дадатковая iнфармацыя"</string>
+    <string name="throttle_help" msgid="2624535757028809735">"Даведацца больш"</string>
     <string name="throttle_status_subtext" msgid="1110276415078236687">"Выкарыстана <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) з максімальнага перыяду (<xliff:g id="USED_2">%3$s</xliff:g>)\nНаступны перыяд пачнецца праз <xliff:g id="USED_3">%4$d</xliff:g> сут (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
     <string name="throttle_data_usage_subtext" msgid="3185429653996709840">"Выкарыстана <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>??) з максімуму перыяду (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
     <string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"Максімум <xliff:g id="USED_0">%1$s</xliff:g> перавышаны\nХуткасць перадачы дадзеных зніжана да <xliff:g id="USED_1">%2$d</xliff:g> Кб/с"</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 39b2132..26f7869 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>
@@ -556,7 +583,8 @@
     <string name="hac_mode_summary" msgid="7774989500136009881">"Activa la compatibilitat amb audiòfons"</string>
     <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="rtt_mode_more_information" msgid="587500128658756318">"La funció RTT ofereix assistència als usuaris que són sords, tenen deficiències auditives 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..c5d45ef 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>
@@ -139,7 +141,7 @@
     <string name="close_dialog" msgid="1074977476136119408">"OK"</string>
     <string name="enable" msgid="2636552299455477603">"Zapnout"</string>
     <string name="disable" msgid="1122698860799462116">"Vypnout"</string>
-    <string name="change_num" msgid="6982164494063109334">"Aktualiz."</string>
+    <string name="change_num" msgid="6982164494063109334">"Aktualizovat"</string>
   <string-array name="clir_display_values">
     <item msgid="8477364191403806960">"Výchozí nastavení sítě"</item>
     <item msgid="6813323051965618926">"Skrýt číslo"</item>
@@ -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 fa282ba..da269e1 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>
@@ -166,7 +168,7 @@
     <string name="label_available" msgid="1316084116670821258">"Tilgængelige netværk"</string>
     <string name="load_networks_progress" msgid="4051433047717401683">"Søger..."</string>
     <string name="empty_networks_list" msgid="9216418268008582342">"Der blev ikke fundet nogen netværk."</string>
-    <string name="network_query_error" msgid="3862515805115145124">"Der kunne ikke findes netværk. Prøv igen."</string>
+    <string name="network_query_error" msgid="3862515805115145124">"Der blev ikke fundet netværk. Prøv igen."</string>
     <string name="register_on_network" msgid="4194770527833960423">"Registrerer på <xliff:g id="NETWORK">%s</xliff:g> ..."</string>
     <string name="not_allowed" msgid="8541221928746104798">"Dit SIM-kort tillader ikke en forbindelse til dette netværk."</string>
     <string name="connect_later" msgid="1950138106010005425">"Der kan ikke oprettes forbindelse til dette netværk lige nu. Prøv igen senere."</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>
@@ -375,6 +400,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>
@@ -439,7 +465,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>
@@ -530,6 +556,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>
@@ -543,7 +570,7 @@
     <string name="onscreenMergeCallsText" msgid="3692389519611225407">"Slå opkald sammen"</string>
     <string name="onscreenSwapCallsText" msgid="2682542150803377991">"Skift"</string>
     <string name="onscreenManageCallsText" msgid="1162047856081836469">"Administrer opkald"</string>
-    <string name="onscreenManageConferenceText" msgid="4700574060601755137">"Admin. konference"</string>
+    <string name="onscreenManageConferenceText" msgid="4700574060601755137">"Admin. møde"</string>
     <string name="onscreenAudioText" msgid="7224226735052019986">"Lyd"</string>
     <string name="onscreenVideoCallText" msgid="1743992456126258698">"Videoopkald"</string>
     <string name="importSimEntry" msgid="3892354284082689894">"Importer"</string>
@@ -557,6 +584,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>
@@ -609,6 +637,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>
@@ -748,7 +782,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>
@@ -757,7 +791,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>
@@ -771,7 +804,7 @@
     <string name="supp_service_additional_call_forwarded" msgid="8772753260008398632">"Det andet opkald er videresendt."</string>
     <string name="supp_service_additional_ect_connected" msgid="8525934162945220237">"Opkaldet blev tilsluttet ECT."</string>
     <string name="supp_service_additional_ect_connecting" msgid="7046240728781222753">"Opkaldet tilsluttes ECT."</string>
-    <string name="supp_service_call_on_hold" msgid="2836811319594503059">"Parkeret opkald."</string>
+    <string name="supp_service_call_on_hold" msgid="2836811319594503059">"Opkald på hold."</string>
     <string name="supp_service_call_resumed" msgid="3786864005920743546">"Opkaldet er genoptaget."</string>
     <string name="supp_service_deflected_call" msgid="7565979024562921707">"Opkaldet blev viderestillet."</string>
     <string name="supp_service_forwarded_call" msgid="6475776013771821457">"Videresendt opkald."</string>
@@ -787,4 +820,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 f760ba5..948c7cc 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>
@@ -375,6 +400,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>
@@ -439,7 +465,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>
@@ -530,6 +556,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>
@@ -557,6 +584,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>
@@ -609,6 +637,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>
@@ -748,7 +782,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>
@@ -757,7 +791,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>
@@ -787,4 +820,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 702740a..9b687c1 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..d48a09c 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>
@@ -72,7 +74,7 @@
     <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"Configure account settings"</string>
     <string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"All calling accounts"</string>
     <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"Select which accounts can make calls"</string>
-    <string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi Calling"</string>
+    <string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi calling"</string>
     <string name="connection_service_default_label" msgid="7332739049855715584">"Built-in connection service"</string>
     <string name="voicemail" msgid="7697769412804195032">"Voicemail"</string>
     <string name="voicemail_settings_with_label" msgid="4228431668214894138">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</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..2505aa1 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>
@@ -72,7 +74,7 @@
     <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"Configure account settings"</string>
     <string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"All calling accounts"</string>
     <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"Select which accounts can make calls"</string>
-    <string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi Calling"</string>
+    <string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi calling"</string>
     <string name="connection_service_default_label" msgid="7332739049855715584">"Built-in connection service"</string>
     <string name="voicemail" msgid="7697769412804195032">"Voicemail"</string>
     <string name="voicemail_settings_with_label" msgid="4228431668214894138">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</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..d48a09c 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>
@@ -72,7 +74,7 @@
     <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"Configure account settings"</string>
     <string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"All calling accounts"</string>
     <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"Select which accounts can make calls"</string>
-    <string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi Calling"</string>
+    <string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi calling"</string>
     <string name="connection_service_default_label" msgid="7332739049855715584">"Built-in connection service"</string>
     <string name="voicemail" msgid="7697769412804195032">"Voicemail"</string>
     <string name="voicemail_settings_with_label" msgid="4228431668214894138">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</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..d48a09c 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>
@@ -72,7 +74,7 @@
     <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"Configure account settings"</string>
     <string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"All calling accounts"</string>
     <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"Select which accounts can make calls"</string>
-    <string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi Calling"</string>
+    <string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi calling"</string>
     <string name="connection_service_default_label" msgid="7332739049855715584">"Built-in connection service"</string>
     <string name="voicemail" msgid="7697769412804195032">"Voicemail"</string>
     <string name="voicemail_settings_with_label" msgid="4228431668214894138">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</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..a9ddc42 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>
@@ -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 5a88739..45f1748 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>
@@ -41,7 +43,7 @@
     <string name="send_button" msgid="5070379600779031932">"Enviar"</string>
     <string name="pause_prompt_yes" msgid="8184132073048369575">"Sí"</string>
     <string name="pause_prompt_no" msgid="2145264674774138579">"No"</string>
-    <string name="wild_prompt_str" msgid="5858910969703305375">"Sustituir el carácter comodín por"</string>
+    <string name="wild_prompt_str" msgid="5858910969703305375">"Reemplazar el carácter comodín por"</string>
     <string name="no_vm_number" msgid="6623853880546176930">"Falta el número del buzón de voz."</string>
     <string name="no_vm_number_msg" msgid="5165161462411372504">"No se ha almacenado ningún número de buzón de voz en la tarjeta SIM."</string>
     <string name="add_vm_number_str" msgid="7368168964435881637">"Añadir número"</string>
@@ -182,7 +184,7 @@
     <string name="forbidden_network" msgid="5081729819561333023">"(prohibida)"</string>
     <string name="choose_network_title" msgid="5335832663422653082">"Elegir red"</string>
     <string name="network_disconnected" msgid="8844141106841160825">"Desconectado"</string>
-    <string name="network_connected" msgid="2760235679963580224">"Conectada"</string>
+    <string name="network_connected" msgid="2760235679963580224">"Conectado"</string>
     <string name="network_connecting" msgid="160901383582774987">"Conectando..."</string>
     <string name="network_could_not_connect" msgid="6547460848093727998">"No se ha podido conectar"</string>
   <string-array name="preferred_network_mode_choices">
@@ -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>
@@ -268,7 +293,7 @@
     <string name="keywords_carrier_settings_euicc" msgid="8540160967922063745">"operador, esim, sim, euicc, cambiar de operador, añadir operador"</string>
     <string name="carrier_settings_euicc_summary" msgid="2027941166597330117">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>: <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="7228249980933944101">"Datos móviles"</string>
-    <string name="mobile_data_settings_summary" msgid="5012570152029118471">"Acceder a los datos con la red móvil"</string>
+    <string name="mobile_data_settings_summary" msgid="5012570152029118471">"Acceder a datos con la red móvil"</string>
     <string name="data_usage_disable_mobile" msgid="5669109209055988308">"¿Quieres desactivar los datos móviles?"</string>
     <string name="sim_selection_required_pref" msgid="6985901872978341314">"Debes seleccionar una opción"</string>
     <string name="sim_change_data_title" msgid="9142726786345906606">"¿Cambiar la SIM de datos?"</string>
@@ -375,6 +400,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>
@@ -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">"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>
@@ -530,6 +556,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>
@@ -557,6 +584,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>
@@ -609,9 +637,15 @@
     <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>
+    <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Sin establecer&gt;"</string>
     <string name="other_settings" msgid="8895088007393598447">"Otras opciones de llamada"</string>
     <string name="calling_via_template" msgid="1791323450703751750">"Llamada vía <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="7885089213135154834">"foto de contacto"</string>
@@ -748,7 +782,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>
@@ -757,7 +791,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>
@@ -787,4 +820,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 fc9cdf0..5d6a837 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 b4062f6..d1699c2 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>
@@ -72,7 +74,7 @@
     <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"Konfiguratu kontuaren ezarpenak"</string>
     <string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"Deiak egiteko kontu guztiak"</string>
     <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"Hautatu zein kontutatik egin daitezkeen deiak"</string>
-    <string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi bidezko deiak"</string>
+    <string name="wifi_calling" msgid="3650509202851355742">"Wifi bidezko deiak"</string>
     <string name="connection_service_default_label" msgid="7332739049855715584">"Konektatzeko zerbitzu integratua"</string>
     <string name="voicemail" msgid="7697769412804195032">"Erantzungailua"</string>
     <string name="voicemail_settings_with_label" msgid="4228431668214894138">"Erantzungailua (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</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>
@@ -273,7 +298,7 @@
     <string name="sim_selection_required_pref" msgid="6985901872978341314">"Hautatu egin behar da"</string>
     <string name="sim_change_data_title" msgid="9142726786345906606">"Datuetarako SIMa aldatu nahi duzu?"</string>
     <string name="sim_change_data_message" msgid="3567358694255933280">"Datu-konexiorako, <xliff:g id="NEW_SIM">%1$s</xliff:g> txartela erabili nahi duzu <xliff:g id="OLD_SIM">%2$s</xliff:g> txartelaren ordez?"</string>
-    <string name="wifi_calling_settings_title" msgid="5800018845662016507">"Wi-Fi bidezko deiak"</string>
+    <string name="wifi_calling_settings_title" msgid="5800018845662016507">"Wifi bidezko deiak"</string>
     <string name="video_calling_settings_title" msgid="342829454913266078">"Operadorearen bideo-deiak"</string>
     <string name="gsm_umts_options" msgid="4968446771519376808">"GSM/UMTS aukerak"</string>
     <string name="cdma_options" msgid="3669592472226145665">"CDMA aukerak"</string>
@@ -375,6 +400,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>
@@ -439,7 +465,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>
@@ -530,6 +556,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>
@@ -557,6 +584,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>
@@ -586,7 +614,7 @@
     <string name="ota_progress" msgid="8837259285255700132">"Telefonoa programatzen…"</string>
     <string name="ota_failure" msgid="5674217489921481576">"Ezin izan da programatu telefonoa"</string>
     <string name="ota_successful" msgid="1106825981548107774">"Telefonoa aktibatu egin da. Zerbitzua hasteko 15 minutu ere behar izan daitezke."</string>
-    <string name="ota_unsuccessful" msgid="8531037653803955754">"Ez duzu telefonoa aktibatu.\nBaliteke estaldura gehiago duen eremu bat aurkitu behar izatea (leiho baten ondoan edo kanpoan).\n\nSaiatu berriro edo, aukera gehiago ezagutzeko, deitu bezeroarentzako zerbitzura."</string>
+    <string name="ota_unsuccessful" msgid="8531037653803955754">"Ez duzu telefonoa aktibatu.\nBaliteke estaldura gehiago duen eremu bat aurkitu behar izatea (leiho baten ondoan edo kanpoan).\n\nSaiatu berriro edo, aukera gehiago ezagutzeko, deitu bezeroarentzako laguntza-zerbitzura."</string>
     <string name="ota_spc_failure" msgid="904092035241370080">"SPC HUTSEGITE GEHIEGI"</string>
     <string name="ota_call_end" msgid="8657746378290737034">"Atzera"</string>
     <string name="ota_try_again" msgid="6914781945599998550">"Saiatu berriro"</string>
@@ -609,6 +637,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>
@@ -748,7 +782,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>
@@ -757,7 +791,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>
@@ -787,4 +820,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..6839a27 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>
@@ -133,7 +135,7 @@
     <string name="stk_cc_ss_to_dial_error" msgid="5147693491690618704">"‏درخواست SS به تماس معمولی تغییر کرد"</string>
     <string name="stk_cc_ss_to_ussd_error" msgid="8330749347425752192">"‏درخواست SS به‌درخواست USSD تغییر کرد"</string>
     <string name="stk_cc_ss_to_ss_error" msgid="8297155544652134278">"‏به‌درخواست SS جدید تغییر کرد"</string>
-    <string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"‏درخواست SS به تماس ویدیویی تغییر کرد"</string>
+    <string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"‏درخواست SS به تماس تصویری تغییر کرد"</string>
     <string name="fdn_check_failure" msgid="1833769746374185247">"تنظیم اعداد شماره‌گیری ثابت برنامه‌های تلفن شما غیرفعال است. درنتیجه، برخی از ویژگی‌های مربوط به تماس کار نمی‌کند."</string>
     <string name="radio_off_error" msgid="8321564164914232181">"قبل از مشاهدهٔ این تنظیمات، رادیو را روشن کنید."</string>
     <string name="close_dialog" msgid="1074977476136119408">"تأیید"</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>
@@ -274,7 +299,7 @@
     <string name="sim_change_data_title" msgid="9142726786345906606">"سیم‌کارت داده تغییر کند؟"</string>
     <string name="sim_change_data_message" msgid="3567358694255933280">"برای داده تلفن همراه، از <xliff:g id="NEW_SIM">%1$s</xliff:g> به‌جای <xliff:g id="OLD_SIM">%2$s</xliff:g> استفاده شود؟"</string>
     <string name="wifi_calling_settings_title" msgid="5800018845662016507">"‏تماس ازطریق Wi-Fi"</string>
-    <string name="video_calling_settings_title" msgid="342829454913266078">"تماس ویدیویی با شرکت مخابراتی"</string>
+    <string name="video_calling_settings_title" msgid="342829454913266078">"تماس تصویری با شرکت مخابراتی"</string>
     <string name="gsm_umts_options" msgid="4968446771519376808">"‏گزینه‌های GSM/UMTS"</string>
     <string name="cdma_options" msgid="3669592472226145665">"‏گزینه‌های CDMA"</string>
     <string name="throttle_data_usage" msgid="1944145350660420711">"مصرف داده"</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>
@@ -420,7 +446,7 @@
     <string name="tty_mode_option_summary" msgid="4770510287236494371">"‏تنظیم حالت TTY"</string>
     <string name="auto_retry_mode_title" msgid="2985801935424422340">"سعی مجدد خودکار"</string>
     <string name="auto_retry_mode_summary" msgid="2863919925349511402">"فعال کردن حالت سعی مجدد خودکار"</string>
-    <string name="tty_mode_not_allowed_video_call" msgid="6551976083652752815">"‏تغییر حالت TTY در طول تماس ویدئویی مجاز نیست"</string>
+    <string name="tty_mode_not_allowed_video_call" msgid="6551976083652752815">"‏تغییر حالت TTY در طول تماس تصویری مجاز نیست"</string>
     <string name="menu_add" msgid="5616487894975773141">"افزودن مخاطب"</string>
     <string name="menu_edit" msgid="3593856941552460706">"ویرایش مخاطب"</string>
     <string name="menu_delete" msgid="6326861853830546488">"حذف مخاطب"</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>
@@ -545,7 +572,7 @@
     <string name="onscreenManageCallsText" msgid="1162047856081836469">"مدیریت تماس‌ها"</string>
     <string name="onscreenManageConferenceText" msgid="4700574060601755137">"مدیریت کنفرانس"</string>
     <string name="onscreenAudioText" msgid="7224226735052019986">"صوتی"</string>
-    <string name="onscreenVideoCallText" msgid="1743992456126258698">"تماس ویدئویی"</string>
+    <string name="onscreenVideoCallText" msgid="1743992456126258698">"تماس تصویری"</string>
     <string name="importSimEntry" msgid="3892354284082689894">"وارد کردن"</string>
     <string name="importAllSimEntries" msgid="2628391505643564007">"وارد کردن همه"</string>
     <string name="importingSimContacts" msgid="4995457122107888932">"وارد کردن مخاطبین سیم"</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>
@@ -626,8 +660,8 @@
     <string name="voicemail_change_pin_dialog_title" msgid="4633077715231764435">"تغییر پین"</string>
     <string name="preference_category_ringtone" msgid="8787281191375434976">"آهنگ‌ زنگ و لرزش"</string>
     <string name="pstn_connection_service_label" msgid="9200102709997537069">"سیم‌کارت‌های داخلی"</string>
-    <string name="enable_video_calling_title" msgid="7246600931634161830">"روشن کردن تماس ویدئویی"</string>
-    <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"‏برای روشن کردن تماس ویدئویی، باید حالت پیشرفته 4G LTE را در تنظیمات شبکه فعال کنید."</string>
+    <string name="enable_video_calling_title" msgid="7246600931634161830">"روشن کردن تماس تصویری"</string>
+    <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"‏برای روشن کردن تماس تصویری، باید حالت پیشرفته 4G LTE را در تنظیمات شبکه فعال کنید."</string>
     <string name="enable_video_calling_dialog_settings" msgid="8697890611305307110">"تنظیمات شبکه"</string>
     <string name="enable_video_calling_dialog_close" msgid="4298929725917045270">"بستن"</string>
     <string name="sim_label_emergency_calls" msgid="9078241989421522310">"تماس‌های اضطراری"</string>
@@ -643,7 +677,7 @@
     <string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"مرتبط نشد، لطفاً سیم کارت معتبری را وارد کنید."</string>
     <string name="callFailed_wifi_lost" msgid="1788036730589163141">"اتصال وای‌فای قطع شد. تماس پایان یافت."</string>
     <string name="dialFailed_low_battery" msgid="6857904237423407056">"به دلیل شارژ کم باتری، نمی‌توان تماسی برقرار کرد."</string>
-    <string name="callFailed_low_battery" msgid="4056828320214416182">"تماس ویدیویی به‌دلیل شارژ کم باتری پایان یافت."</string>
+    <string name="callFailed_low_battery" msgid="4056828320214416182">"تماس تصویری به‌دلیل شارژ کم باتری پایان یافت."</string>
     <string name="callFailed_emergency_call_over_wfc_not_available" msgid="5944309590693432042">"‏در این مکان تماس اضطراری با «تماس ازطریق Wi-Fi» امکان‌پذیر نیست."</string>
     <string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"‏در این مکان تماس ازطریق Wi-Fi امکان‌پذیر نیست."</string>
     <string name="change_pin_title" msgid="3564254326626797321">"تغییر پین پست صوتی"</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 cd1b962..7d88687 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>
@@ -105,21 +107,21 @@
     <string name="sum_cfu_enabled_indicator" msgid="9030139213402432776">"Kaikki puhelut siirretään"</string>
     <string name="sum_cfu_enabled" msgid="5806923046528144526">"Siirretään kaikki puhelut numeroon <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
     <string name="sum_cfu_enabled_no_number" msgid="7287752761743377930">"Numeroon ei saada yhteyttä"</string>
-    <string name="sum_cfu_disabled" msgid="5010617134210809853">"Ei käytössä"</string>
+    <string name="sum_cfu_disabled" msgid="5010617134210809853">"Ei päällä"</string>
     <string name="labelCFB" msgid="615265213360512768">"Kun olen varattu"</string>
     <string name="messageCFB" msgid="1958017270393563388">"Soita, kun numero on varattu:"</string>
     <string name="sum_cfb_enabled" msgid="332037613072049492">"Puhelu siirretään numeroon <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
-    <string name="sum_cfb_disabled" msgid="3589913334164866035">"Ei käytössä"</string>
+    <string name="sum_cfb_disabled" msgid="3589913334164866035">"Ei päällä"</string>
     <string name="disable_cfb_forbidden" msgid="4831494744351633961">"Operaattorisi ei tue soitonsiirtojen poistamista käytöstä, kun puhelimesi on varattuna."</string>
     <string name="labelCFNRy" msgid="3403533792248457946">"Kun en vastaa"</string>
     <string name="messageCFNRy" msgid="7644434155765359009">"Soita, kun numero ei vastaa:"</string>
     <string name="sum_cfnry_enabled" msgid="3000500837493854799">"Puhelu siirretään numeroon <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
-    <string name="sum_cfnry_disabled" msgid="1990563512406017880">"Ei käytössä"</string>
+    <string name="sum_cfnry_disabled" msgid="1990563512406017880">"Ei päällä"</string>
     <string name="disable_cfnry_forbidden" msgid="3174731413216550689">"Operaattorisi ei tue soitonsiirtojen poistamista käytöstä, kun puhelimesi ei vastaa."</string>
     <string name="labelCFNRc" msgid="4163399350778066013">"Kun en ole tavoitettavissa"</string>
     <string name="messageCFNRc" msgid="6980340731313007250">"Soita, kun numeroon ei saada yhteyttä:"</string>
     <string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Puhelu siirretään numeroon <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
-    <string name="sum_cfnrc_disabled" msgid="739289696796917683">"Ei käytössä"</string>
+    <string name="sum_cfnrc_disabled" msgid="739289696796917683">"Ei päällä"</string>
     <string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Operaattorisi ei tue soitonsiirtojen poistamista käytöstä puhelimesi ollessa saavuttamattomissa."</string>
     <string name="updating_title" msgid="6130548922615719689">"Puheluasetukset"</string>
     <string name="call_settings_admin_user_only" msgid="7238947387649986286">"Vain järjestelmänvalvoja voi muuttaa puheluasetuksia."</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>
@@ -249,8 +274,8 @@
     <string name="data_enable_summary" msgid="696860063456536557">"Salli tiedonsiirto"</string>
     <string name="dialog_alert_title" msgid="5260471806940268478">"Huomio"</string>
     <string name="roaming" msgid="1576180772877858949">"Roaming"</string>
-    <string name="roaming_enable" msgid="6853685214521494819">"Yhdistä verkkoon roaming-tilassa."</string>
-    <string name="roaming_disable" msgid="8856224638624592681">"Yhdistä verkkoon roaming-tilassa."</string>
+    <string name="roaming_enable" msgid="6853685214521494819">"Yhdistä verkkoon roaming-tilassa"</string>
+    <string name="roaming_disable" msgid="8856224638624592681">"Yhdistä verkkoon roaming-tilassa"</string>
     <string name="roaming_reenable_message" msgid="1951802463885727915">"Roaming ei ole käytössä. Ota käyttöön napauttamalla."</string>
     <string name="roaming_enabled_message" msgid="9022249120750897">"Puhelusta saatetaan periä roaming-maksuja. Muokkaa napauttamalla."</string>
     <string name="roaming_notification_title" msgid="3590348480688047320">"Mobiilidatayhteys katkesi"</string>
@@ -269,7 +294,7 @@
     <string name="carrier_settings_euicc_summary" msgid="2027941166597330117">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="7228249980933944101">"Mobiilidata"</string>
     <string name="mobile_data_settings_summary" msgid="5012570152029118471">"Käytä dataa mobiiliverkon kautta."</string>
-    <string name="data_usage_disable_mobile" msgid="5669109209055988308">"Poistetaanko mobiilidata käytöstä?"</string>
+    <string name="data_usage_disable_mobile" msgid="5669109209055988308">"Laitetaanko mobiilidata pois päältä?"</string>
     <string name="sim_selection_required_pref" msgid="6985901872978341314">"Valinta on pakollinen"</string>
     <string name="sim_change_data_title" msgid="9142726786345906606">"Vaihdetaanko tied.siirto-SIM?"</string>
     <string name="sim_change_data_message" msgid="3567358694255933280">"Käytetäänkö SIM-kortin <xliff:g id="NEW_SIM">%1$s</xliff:g> mobiilidataa kortin <xliff:g id="OLD_SIM">%2$s</xliff:g> sijaan?"</string>
@@ -375,6 +400,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>
@@ -439,7 +465,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>
@@ -517,7 +543,7 @@
     <string name="incall_error_supp_service_hold" msgid="8535056414643540997">"Puhelujen pito ei onnistu."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"Yhdistä langattomaan verkkoon, jos haluat soittaa puhelun."</string>
     <string name="incall_error_promote_wfc" msgid="9164896813931363415">"Ota Wi-Fi-puhelut käyttöön soittaaksesi."</string>
-    <string name="emergency_information_hint" msgid="9208897544917793012">"Hätätilannetiedot"</string>
+    <string name="emergency_information_hint" msgid="9208897544917793012">"Vaaratiedot"</string>
     <string name="emergency_information_owner_hint" msgid="6256909888049185316">"Omistaja"</string>
     <string name="emergency_information_confirm_hint" msgid="5109017615894918914">"Katso tiedot napauttamalla uudelleen"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"Hätäpuhelu"</string>
@@ -530,6 +556,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>
@@ -557,6 +584,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>
@@ -609,6 +637,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>
@@ -748,7 +782,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>
@@ -757,7 +791,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>
@@ -787,4 +820,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 f7a98fa..0842224 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>
@@ -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">" (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>
@@ -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 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>
@@ -496,7 +522,7 @@
     <string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"Numéro de messagerie vocale inconnu"</string>
     <string name="notification_network_selection_title" msgid="255595526707809121">"Aucun service"</string>
     <string name="notification_network_selection_text" msgid="553288408722427659">"Réseau sélectionné<xliff:g id="OPERATOR_NAME">%s</xliff:g> non disponible"</string>
-    <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Activez le réseau cellulaire ou désactivez le mode Avion ou le mode Économie d\'énergie pour faire un appel."</string>
+    <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Activez le réseau cellulaire ou désactivez le mode Avion ou le mode Économiseur de pile pour faire un appel."</string>
     <string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Désactivez le mode Avion pour faire un appel."</string>
     <string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Désactivez le mode Avion ou connectez-vous à un réseau Wi-Fi pour faire un appel."</string>
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Quittez le mode de rappel d\'urgence pour effectuer un appel non urgent."</string>
@@ -530,6 +556,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>
@@ -557,6 +584,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>
@@ -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 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>
@@ -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">"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>
@@ -757,7 +791,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>
@@ -787,4 +820,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 (obsolètes) :"</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 388a018..61321c8 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..78520c9 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>
@@ -60,7 +62,7 @@
     <string name="labelCdmaMore_with_label" msgid="7759692829160238152">"CDMA કૉલ સેટિંગ્સ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="apn_settings" msgid="1978652203074756623">"ઍક્સેસ પોઇન્ટનું નામ"</string>
     <string name="settings_label" msgid="9101778088412567956">"નેટવર્ક સેટિંગ્સ"</string>
-    <string name="phone_accounts" msgid="1216879437523774604">"કૉલિંગ એકાઉન્ટ્સ"</string>
+    <string name="phone_accounts" msgid="1216879437523774604">"કૉલ કરવા માટેના એકાઉન્ટ"</string>
     <string name="phone_accounts_make_calls_with" msgid="16747814788918145">"આના વડે કૉલ કરો"</string>
     <string name="phone_accounts_make_sip_calls_with" msgid="4691221006731847255">"આના વડે SIP કૉલ્સ કરો"</string>
     <string name="phone_accounts_ask_every_time" msgid="6192347582666047168">"પહેલાં પૂછો"</string>
@@ -82,9 +84,9 @@
     <string name="smart_forwarding_settings_menu_summary" msgid="5096947726032885325">"એક નંબર પર પહોંચી શકાય તેમ ન હોય, ત્યારે હંમેશાં તમારા અન્ય નંબર પર કૉલ ફૉરવર્ડ કરો"</string>
     <string name="voicemail_notifications_preference_title" msgid="7829238858063382977">"નોટિફિકેશન"</string>
     <string name="cell_broadcast_settings" msgid="8135324242541809924">"કટોકટીના બ્રોડકાસ્ટ્સ"</string>
-    <string name="call_settings" msgid="3677282690157603818">"કૉલ સેટિંગ્સ"</string>
-    <string name="additional_gsm_call_settings" msgid="1561980168685658846">"વધારાની સેટિંગ્સ"</string>
-    <string name="additional_gsm_call_settings_with_label" msgid="7973920539979524908">"વધારાની સેટિંગ્સ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="call_settings" msgid="3677282690157603818">"કૉલ સેટિંગ"</string>
+    <string name="additional_gsm_call_settings" msgid="1561980168685658846">"વધારાના સેટિંગ"</string>
+    <string name="additional_gsm_call_settings_with_label" msgid="7973920539979524908">"વધારાના સેટિંગ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="sum_gsm_call_settings" msgid="7964692601608878138">"ફક્ત વધારાની GSM કૉલ સેટિંગ્સ"</string>
     <string name="additional_cdma_call_settings" msgid="2178016561980611304">"વધારાની CDMA કૉલ સેટિંગ્સ"</string>
     <string name="sum_cdma_call_settings" msgid="3185825305136993636">"ફક્ત વધારાની CDMA કૉલ સેટિંગ્સ"</string>
@@ -95,10 +97,10 @@
     <string name="sum_show_caller_id" msgid="3571854755324664591">"આઉટગોઇંગ કૉલ્સમાં નંબર પ્રદર્શિત થાય છે"</string>
     <string name="sum_default_caller_id" msgid="1767070797135682959">"આઉટગોઇંગ કૉલ્સમાં મારો નંબર પ્રદર્શિત કરવા માટે ડિફોલ્ટ ઓપરેટર સેટિંગ્સનો ઉપયોગ કરો"</string>
     <string name="labelCW" msgid="8449327023861428622">"કૉલ પ્રતીક્ષા"</string>
-    <string name="sum_cw_enabled" msgid="3977308526187139996">"કૉલ દરમ્યાન, મને આવનારા કૉલ્સની સૂચના આપો"</string>
-    <string name="sum_cw_disabled" msgid="3658094589461768637">"કૉલ દરમ્યાન, મને આવનારા કૉલ્સની સૂચના આપો"</string>
-    <string name="call_forwarding_settings" msgid="8937130467468257671">"કૉલ ફોરવર્ડિંગ સેટિંગ્સ"</string>
-    <string name="call_forwarding_settings_with_label" msgid="2345432813399564272">"કૉલ ફોરવર્ડિંગ સેટિંગ્સ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="sum_cw_enabled" msgid="3977308526187139996">"કૉલ દરમ્યાન, મને ઇનકમિંગ કૉલની સૂચના આપો"</string>
+    <string name="sum_cw_disabled" msgid="3658094589461768637">"કૉલ દરમ્યાન, મને ઇનકમિંગ કૉલની સૂચના આપો"</string>
+    <string name="call_forwarding_settings" msgid="8937130467468257671">"કૉલ ફોરવર્ડિંગ સેટિંગ"</string>
+    <string name="call_forwarding_settings_with_label" msgid="2345432813399564272">"કૉલ ફોરવર્ડિંગ સેટિંગ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="labelCF" msgid="3578719437928476078">"કૉલ ફોરવર્ડિંગ"</string>
     <string name="labelCFU" msgid="8870170873036279706">"હંમેશા ફોરવર્ડ કરો"</string>
     <string name="messageCFU" msgid="1361806450979589744">"હંમેશાં આ નંબરનો ઉપયોગ કરો"</string>
@@ -121,12 +123,12 @@
     <string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> પર ફોરવર્ડ કરી રહ્યાં છે"</string>
     <string name="sum_cfnrc_disabled" msgid="739289696796917683">"બંધ"</string>
     <string name="disable_cfnrc_forbidden" msgid="775348748084726890">"જ્યારે તમારો ફોન પહોંચયોગ્ય ન હોય ત્યારે તમારા કેરિઅર કૉલ ફોરવર્ડિંગને અક્ષમ કરવાને સમર્થન આપતા નથી."</string>
-    <string name="updating_title" msgid="6130548922615719689">"કૉલ સેટિંગ્સ"</string>
+    <string name="updating_title" msgid="6130548922615719689">"કૉલ સેટિંગ"</string>
     <string name="call_settings_admin_user_only" msgid="7238947387649986286">"કૉલ સેટિંગ્સને ફક્ત એડમિન વપરાશકર્તા દ્વારા જ બદલી શકાય છે."</string>
     <string name="call_settings_with_label" msgid="8460230435361579511">"સેટિંગ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="error_updating_title" msgid="2024290892676808965">"કૉલ સેટિંગની ભૂલ"</string>
-    <string name="reading_settings" msgid="1605904432450871183">"સેટિંગ્સ વાંચી રહ્યાં છે…"</string>
-    <string name="updating_settings" msgid="3650396734816028808">"સેટિંગ્સ અપડેટ કરી રહ્યાં છે..."</string>
+    <string name="reading_settings" msgid="1605904432450871183">"સેટિંગ વાંચી રહ્યાં છે…"</string>
+    <string name="updating_settings" msgid="3650396734816028808">"સેટિંગ અપડેટ કરી રહ્યાં છીએ..."</string>
     <string name="reverting_settings" msgid="7378668837291012205">"સેટિંગ્સ પાછી ફરાવી રહ્યાં છે…"</string>
     <string name="response_error" msgid="3904481964024543330">"નેટવર્ક તરફથી અનપેક્ષિત પ્રતિસાદ."</string>
     <string name="exception_error" msgid="330994460090467">"નેટવર્ક અથવા SIM કાર્ડ ભૂલ."</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>
@@ -521,7 +547,7 @@
     <string name="emergency_information_owner_hint" msgid="6256909888049185316">"માલિક"</string>
     <string name="emergency_information_confirm_hint" msgid="5109017615894918914">"માહિતી જોવા માટે ફરીથી ટૅપ કરો"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"કટોકટીનો કૉલ"</string>
-    <string name="single_emergency_number_title" msgid="8413371079579067196">"કટોકટીનો નંબર"</string>
+    <string name="single_emergency_number_title" msgid="8413371079579067196">"ઇમર્જન્સી નંબર"</string>
     <string name="numerous_emergency_numbers_title" msgid="8972398932506755510">"કટોકટીના નંબર"</string>
     <string name="emergency_call_shortcut_hint" msgid="1290485125107779500">"<xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>ને ફરીથી કૉલ કરવા માટે ટૅપ કરો"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="1695305158151408629">"રેડિઓ ચાલુ કરી રહ્યાં છે…"</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>
@@ -545,7 +572,7 @@
     <string name="onscreenManageCallsText" msgid="1162047856081836469">"કૉલ્સ સંચાલિત કરો"</string>
     <string name="onscreenManageConferenceText" msgid="4700574060601755137">"કોન્ફરન્સ સંચાલિત કરો"</string>
     <string name="onscreenAudioText" msgid="7224226735052019986">"ઑડિઓ"</string>
-    <string name="onscreenVideoCallText" msgid="1743992456126258698">"વિડિઓ કૉલ"</string>
+    <string name="onscreenVideoCallText" msgid="1743992456126258698">"વીડિયો કૉલ"</string>
     <string name="importSimEntry" msgid="3892354284082689894">"આયાત કરો"</string>
     <string name="importAllSimEntries" msgid="2628391505643564007">"બધુ આયાત કરો"</string>
     <string name="importingSimContacts" msgid="4995457122107888932">"SIM સંપર્કો આયાત કરી રહ્યાં છે"</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 f7d50da..96aa5f0 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..f38d1f6 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>
@@ -93,17 +95,17 @@
     <string name="sum_loading_settings" msgid="434063780286688775">"Učitavanje postavki…"</string>
     <string name="sum_hide_caller_id" msgid="131100328602371933">"Broj je skriven u izlaznim pozivima"</string>
     <string name="sum_show_caller_id" msgid="3571854755324664591">"Broj prikazan za izlazne pozive"</string>
-    <string name="sum_default_caller_id" msgid="1767070797135682959">"Koristiti zadane postavke operatera za prikaz mog broja kod odlaznih poziva"</string>
+    <string name="sum_default_caller_id" msgid="1767070797135682959">"Upotrijebi zadane postavke operatera za prikaz mog broja kod odlaznih poziva"</string>
     <string name="labelCW" msgid="8449327023861428622">"Poziv na čekanju"</string>
-    <string name="sum_cw_enabled" msgid="3977308526187139996">"Obavijesti me tijekom poziva o dolaznim pozivima"</string>
-    <string name="sum_cw_disabled" msgid="3658094589461768637">"Obavijesti me tijekom poziva o dolaznim pozivima"</string>
+    <string name="sum_cw_enabled" msgid="3977308526187139996">"Obavijesti me o dolaznim pozivima tijekom poziva"</string>
+    <string name="sum_cw_disabled" msgid="3658094589461768637">"Obavijesti me o dolaznim pozivima tijekom poziva"</string>
     <string name="call_forwarding_settings" msgid="8937130467468257671">"Postavke preusmjeravanja poziva"</string>
     <string name="call_forwarding_settings_with_label" msgid="2345432813399564272">"Prosljeđivanje poziva (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="labelCF" msgid="3578719437928476078">"Preusmjeravanje poziva"</string>
     <string name="labelCFU" msgid="8870170873036279706">"Uvijek preusmjeri"</string>
     <string name="messageCFU" msgid="1361806450979589744">"Uvijek koristi ovaj broj"</string>
     <string name="sum_cfu_enabled_indicator" msgid="9030139213402432776">"Preusmjeravanje svih poziva"</string>
-    <string name="sum_cfu_enabled" msgid="5806923046528144526">"Preusmjeravanje poziva na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+    <string name="sum_cfu_enabled" msgid="5806923046528144526">"Preusmjeravanje svih poziva na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
     <string name="sum_cfu_enabled_no_number" msgid="7287752761743377930">"Broj je nedostupan"</string>
     <string name="sum_cfu_disabled" msgid="5010617134210809853">"Isključeno"</string>
     <string name="labelCFB" msgid="615265213360512768">"Kad je broj zauzet"</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..f69e5b1 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>
@@ -248,16 +273,16 @@
     <string name="data_enabled" msgid="22525832097434368">"Adatok engedélyezése"</string>
     <string name="data_enable_summary" msgid="696860063456536557">"Adatforgalom engedélyezése"</string>
     <string name="dialog_alert_title" msgid="5260471806940268478">"Figyelem"</string>
-    <string name="roaming" msgid="1576180772877858949">"Barangolás"</string>
-    <string name="roaming_enable" msgid="6853685214521494819">"Csatlakozás adatszolgáltatásokhoz barangolás során"</string>
-    <string name="roaming_disable" msgid="8856224638624592681">"Csatlakozás adatszolgáltatásokhoz barangolás során"</string>
+    <string name="roaming" msgid="1576180772877858949">"Roaming"</string>
+    <string name="roaming_enable" msgid="6853685214521494819">"Csatlakozás adatszolgáltatásokhoz roaming során"</string>
+    <string name="roaming_disable" msgid="8856224638624592681">"Csatlakozás adatszolgáltatásokhoz roaming során"</string>
     <string name="roaming_reenable_message" msgid="1951802463885727915">"Az adatbarangolás ki van kapcsolva. Koppintson a bekapcsolásához."</string>
     <string name="roaming_enabled_message" msgid="9022249120750897">"A szolgáltató adatroamingdíjat számíthat fel. Koppintson a módosításhoz."</string>
     <string name="roaming_notification_title" msgid="3590348480688047320">"Nincs mobiladat-kapcsolat"</string>
     <string name="roaming_on_notification_title" msgid="7451473196411559173">"Az adatroaming be van kapcsolva"</string>
     <string name="roaming_warning" msgid="7855681468067171971">"Lehet, hogy jelentős összeget számítanak fel érte."</string>
     <string name="roaming_check_price_warning" msgid="8212484083990570215">"Az árakat a szolgáltatótól tudhatja meg."</string>
-    <string name="roaming_alert_title" msgid="5689615818220960940">"Engedélyezi az adatbarangolást?"</string>
+    <string name="roaming_alert_title" msgid="5689615818220960940">"Engedélyezi az adatroamingot?"</string>
     <string name="limited_sim_function_notification_title" msgid="612715399099846281">"Korlátozott SIM-funkció"</string>
     <string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"A(z) <xliff:g id="PHONE_NUMBER">%2$s</xliff:g> szám használatakor előfordulhat, hogy a(z) <xliff:g id="CARRIER_NAME">%1$s</xliff:g>-hívások és az adatszolgáltatások nem működnek."</string>
     <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"Másik SIM esetén lehet, hogy a(z) <xliff:g id="CARRIER_NAME">%1$s</xliff:g>-hívások és -adatszolgáltatások nem működnek."</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>
@@ -735,20 +769,20 @@
     <string name="call_barring_baoic_enabled" msgid="1203758092657630123">"Megszünteti a kimenő nemzetközi hívások letiltását?"</string>
     <string name="call_barring_baoic_disabled" msgid="5656889339002997449">"Letiltja a kimenő nemzetközi hívásokat?"</string>
     <string name="call_barring_baoicr" msgid="8566167764432343487">"Kimenő hívások nemzetközi barangoláskor"</string>
-    <string name="call_barring_baoicr_enabled" msgid="1615324165512798478">"Megszünteti a nemzetközi barangolás során kimenő hívások letiltását?"</string>
+    <string name="call_barring_baoicr_enabled" msgid="1615324165512798478">"Megszünteti a nemzetközi roaming során kimenő hívások letiltását?"</string>
     <string name="call_barring_baoicr_disabled" msgid="172010175248142831">"Letiltja a kimenő hívásokat nemzetközi barangoláskor?"</string>
     <string name="call_barring_baic" msgid="7941393541678658566">"Minden bejövő hívás"</string>
     <string name="call_barring_baic_enabled" msgid="4357332358020337470">"Megszünteti az összes bejövő hívás letiltását?"</string>
     <string name="call_barring_baic_disabled" msgid="2355945245938240958">"Letiltja az összes bejövő hívást?"</string>
     <string name="call_barring_baicr" msgid="8712249337313034226">"Bejövő hívások nemzetközi barangoláskor"</string>
-    <string name="call_barring_baicr_enabled" msgid="64774270234828175">"Megszünteti a nemzetközi barangolás során bejövő összes hívás letiltását?"</string>
+    <string name="call_barring_baicr_enabled" msgid="64774270234828175">"Megszünteti a nemzetközi roaming során bejövő összes hívás letiltását?"</string>
     <string name="call_barring_baicr_disabled" msgid="3488129262744027262">"Letiltja a bejövő hívásokat nemzetközi barangoláskor?"</string>
     <string name="call_barring_deactivate_all" msgid="7837931580047157328">"Az összes deaktiválása"</string>
     <string name="call_barring_deactivate_all_description" msgid="4474119585042121604">"Az összes híváskorlátozási beállítás deaktiválása"</string>
     <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">"Roaming:"</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 677b862..fba555f 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>
@@ -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-ը չի թարմացվել, քանի որ դուք մուտքագրել եք սխալ 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="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>\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..ac4b8d2 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>
@@ -133,7 +135,7 @@
     <string name="stk_cc_ss_to_dial_error" msgid="5147693491690618704">"Permintaan SS diubah ke panggilan reguler"</string>
     <string name="stk_cc_ss_to_ussd_error" msgid="8330749347425752192">"Permintaan SS diubah ke permintaan USSD"</string>
     <string name="stk_cc_ss_to_ss_error" msgid="8297155544652134278">"Diubah ke permintaan SS baru"</string>
-    <string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"Permintaan SS diubah ke video call"</string>
+    <string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"Permintaan SS diubah ke panggilan video"</string>
     <string name="fdn_check_failure" msgid="1833769746374185247">"Setelan Nomor Panggilan Tetap aplikasi Ponsel Anda diaktifkan. Akibatnya, beberapa fitur yang terkait dengan panggilan tidak bekerja."</string>
     <string name="radio_off_error" msgid="8321564164914232181">"Keluar dari mode pesawat sebelum melihat setelan ini."</string>
     <string name="close_dialog" msgid="1074977476136119408">"Oke"</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>
@@ -261,7 +286,7 @@
     <string name="limited_sim_function_notification_title" msgid="612715399099846281">"Fungsi SIM terbatas"</string>
     <string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"Layanan data dan panggilan <xliff:g id="CARRIER_NAME">%1$s</xliff:g> dapat diblokir saat menggunakan <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>."</string>
     <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"Layanan data dan panggilan <xliff:g id="CARRIER_NAME">%1$s</xliff:g> dapat diblokir saat menggunakan SIM lain."</string>
-    <string name="data_usage_title" msgid="8438592133893837464">"Penggunaan kuota aplikasi"</string>
+    <string name="data_usage_title" msgid="8438592133893837464">"Penggunaan data aplikasi"</string>
     <string name="data_usage_template" msgid="6287906680674061783">"<xliff:g id="ID_1">%1$s</xliff:g> data seluler digunakan pada <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="advanced_options_title" msgid="9208195294513520934">"Lanjutan"</string>
     <string name="carrier_settings_euicc" msgid="1190237227261337749">"Operator"</string>
@@ -274,7 +299,7 @@
     <string name="sim_change_data_title" msgid="9142726786345906606">"Ubah SIM data?"</string>
     <string name="sim_change_data_message" msgid="3567358694255933280">"Gunakan <xliff:g id="NEW_SIM">%1$s</xliff:g> dan bukan <xliff:g id="OLD_SIM">%2$s</xliff:g> untuk data seluler?"</string>
     <string name="wifi_calling_settings_title" msgid="5800018845662016507">"Panggilan Wi-Fi"</string>
-    <string name="video_calling_settings_title" msgid="342829454913266078">"Video call operator"</string>
+    <string name="video_calling_settings_title" msgid="342829454913266078">"Panggilan video operator"</string>
     <string name="gsm_umts_options" msgid="4968446771519376808">"Opsi GSM//UMTS"</string>
     <string name="cdma_options" msgid="3669592472226145665">"Opsi CDMA"</string>
     <string name="throttle_data_usage" msgid="1944145350660420711">"Penggunaan kuota"</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>
@@ -420,7 +446,7 @@
     <string name="tty_mode_option_summary" msgid="4770510287236494371">"Setel Mode TTY"</string>
     <string name="auto_retry_mode_title" msgid="2985801935424422340">"Coba lagi otomatis"</string>
     <string name="auto_retry_mode_summary" msgid="2863919925349511402">"Aktifkan mode Coba lagi otomatis"</string>
-    <string name="tty_mode_not_allowed_video_call" msgid="6551976083652752815">"Perubahan Mode TTY tidak diizinkan selama video call"</string>
+    <string name="tty_mode_not_allowed_video_call" msgid="6551976083652752815">"Perubahan Mode TTY tidak diizinkan selama panggilan video"</string>
     <string name="menu_add" msgid="5616487894975773141">"Tambahkan kontak"</string>
     <string name="menu_edit" msgid="3593856941552460706">"Edit kontak"</string>
     <string name="menu_delete" msgid="6326861853830546488">"Hapus kontak"</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>
@@ -545,7 +572,7 @@
     <string name="onscreenManageCallsText" msgid="1162047856081836469">"Kelola panggilan"</string>
     <string name="onscreenManageConferenceText" msgid="4700574060601755137">"Kelola konferensi"</string>
     <string name="onscreenAudioText" msgid="7224226735052019986">"Audio"</string>
-    <string name="onscreenVideoCallText" msgid="1743992456126258698">"Video call"</string>
+    <string name="onscreenVideoCallText" msgid="1743992456126258698">"Panggilan video"</string>
     <string name="importSimEntry" msgid="3892354284082689894">"Impor"</string>
     <string name="importAllSimEntries" msgid="2628391505643564007">"Impor semua"</string>
     <string name="importingSimContacts" msgid="4995457122107888932">"Mengimpor kontak dari SIM"</string>
@@ -556,7 +583,8 @@
     <string name="hac_mode_summary" msgid="7774989500136009881">"Aktifkan kompatibilitas alat bantu dengar"</string>
     <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="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 panggilan video"</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>
@@ -626,8 +660,8 @@
     <string name="voicemail_change_pin_dialog_title" msgid="4633077715231764435">"Ubah PIN"</string>
     <string name="preference_category_ringtone" msgid="8787281191375434976">"Nada dering &amp; Getar"</string>
     <string name="pstn_connection_service_label" msgid="9200102709997537069">"Kartu SIM internal"</string>
-    <string name="enable_video_calling_title" msgid="7246600931634161830">"Aktifkan video call"</string>
-    <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"Untuk mengaktifkan video call, Anda perlu mengaktifkan Mode LTE 4G yang Ditingkatkan di setelan jaringan."</string>
+    <string name="enable_video_calling_title" msgid="7246600931634161830">"Aktifkan panggilan video"</string>
+    <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"Untuk mengaktifkan panggilan video, Anda perlu mengaktifkan Mode LTE 4G yang Ditingkatkan di setelan jaringan."</string>
     <string name="enable_video_calling_dialog_settings" msgid="8697890611305307110">"Setelan jaringan"</string>
     <string name="enable_video_calling_dialog_close" msgid="4298929725917045270">"Tutup"</string>
     <string name="sim_label_emergency_calls" msgid="9078241989421522310">"Panggilan darurat"</string>
@@ -642,8 +676,8 @@
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Ada terlalu banyak panggilan aktif. Akhiri atau gabungkan panggilan yang ada sebelum melakukan panggilan baru."</string>
     <string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"Tidak dapat tersambung, masukkan kartu SIM yang valid."</string>
     <string name="callFailed_wifi_lost" msgid="1788036730589163141">"Sambungan Wi-Fi terputus. Panggilan diakhiri."</string>
-    <string name="dialFailed_low_battery" msgid="6857904237423407056">"Video call tidak bisa dilakukan karena daya baterai lemah."</string>
-    <string name="callFailed_low_battery" msgid="4056828320214416182">"Video call berakhir karena daya baterai lemah."</string>
+    <string name="dialFailed_low_battery" msgid="6857904237423407056">"Panggilan video tidak bisa dilakukan karena daya baterai lemah."</string>
+    <string name="callFailed_low_battery" msgid="4056828320214416182">"Panggilan video berakhir karena daya baterai lemah."</string>
     <string name="callFailed_emergency_call_over_wfc_not_available" msgid="5944309590693432042">"Panggilan darurat melalui panggilan Wi-Fi tidak tersedia di lokasi ini."</string>
     <string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"Panggilan Wi-Fi tidak tersedia di lokasi ini."</string>
     <string name="change_pin_title" msgid="3564254326626797321">"Ubah PIN Pesan Suara"</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">"Panggilan Video 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>\nPanggilan Video: <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 58488ff..9f53607 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>
@@ -375,6 +400,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>
@@ -439,7 +465,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>
@@ -530,6 +556,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>
@@ -557,6 +584,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>
@@ -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">"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>
@@ -748,7 +782,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>
@@ -757,7 +791,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>
@@ -787,4 +820,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 4f42376..a2a2f69 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 f286c38..e6e04d7 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..cfd4406 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>
@@ -630,7 +664,7 @@
     <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"Бейне қоңырауларды қосу үшін желі параметрлерінде жақсартылған 4G LTE режимін қосу керек."</string>
     <string name="enable_video_calling_dialog_settings" msgid="8697890611305307110">"Желі параметрлері"</string>
     <string name="enable_video_calling_dialog_close" msgid="4298929725917045270">"Жабу"</string>
-    <string name="sim_label_emergency_calls" msgid="9078241989421522310">"Жедел қоңыраулар"</string>
+    <string name="sim_label_emergency_calls" msgid="9078241989421522310">"Құтқару қызметіне қоңырау шалу"</string>
     <string name="sim_description_emergency_calls" msgid="5146872803938897296">"Тек жедел қоңыраулар"</string>
     <string name="sim_description_default" msgid="7474671114363724971">"SIM картасы, ұяшық: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Арнайы мүмкіндіктер"</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..6e37605 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..fcbcf3d 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>
@@ -139,7 +141,7 @@
     <string name="close_dialog" msgid="1074977476136119408">"ಸರಿ"</string>
     <string name="enable" msgid="2636552299455477603">"ಆನ್‌ ಮಾಡಿ"</string>
     <string name="disable" msgid="1122698860799462116">"ಆಫ್ ಮಾಡು"</string>
-    <string name="change_num" msgid="6982164494063109334">"ಅಪ್‌ಡೇಟ್‌ ಮಾಡು"</string>
+    <string name="change_num" msgid="6982164494063109334">"ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ"</string>
   <string-array name="clir_display_values">
     <item msgid="8477364191403806960">"ನೆಟ್‌ವರ್ಕ್ ಡಿಫಾಲ್ಟ್"</item>
     <item msgid="6813323051965618926">"ಸಂಖ್ಯೆಯನ್ನು ಮರೆಮಾಡು"</item>
@@ -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 34d7dfa..17fe829 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>
@@ -46,7 +48,7 @@
     <string name="no_vm_number_msg" msgid="5165161462411372504">"SIM-картада сакталган үн почтасынын номери жок."</string>
     <string name="add_vm_number_str" msgid="7368168964435881637">"Номер кошуу"</string>
     <string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Үн почта жөндөөлөрүн алгачкы колдонуучу гана өзгөртө алат."</string>
-    <string name="puk_unlocked" msgid="4627340655215746511">"SIM-картаңыз бөгөттөн чыгарылган. Телефонуңуздун кулпусу ачылууда…"</string>
+    <string name="puk_unlocked" msgid="4627340655215746511">"SIM картаңыз бөгөттөн чыгарылган. Телефонуңуздун кулпусу ачылууда…"</string>
     <string name="label_ndp" msgid="7617392683877410341">"SIM-карта тармагынын кулпусун ачуучу PIN код"</string>
     <string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Кулпусун ачуу"</string>
     <string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Этибарга албоо"</string>
@@ -168,7 +170,7 @@
     <string name="empty_networks_list" msgid="9216418268008582342">"Эч тармак табылган жок."</string>
     <string name="network_query_error" msgid="3862515805115145124">"Тармактар табылбай койду. Кайталап көрүңүз."</string>
     <string name="register_on_network" msgid="4194770527833960423">"<xliff:g id="NETWORK">%s</xliff:g> тармагына катталууда…"</string>
-    <string name="not_allowed" msgid="8541221928746104798">"Сиздин SIM-картаңыз бул түйүнгө кошулганга жол бербейт."</string>
+    <string name="not_allowed" msgid="8541221928746104798">"Сиздин SIM картаңыз бул түйүнгө кошулганга жол бербейт."</string>
     <string name="connect_later" msgid="1950138106010005425">"Бул түйүнгө азыр кошулуу мүмкүн эмес. Бир аздан соң кайра аракеттениңиз."</string>
     <string name="registration_done" msgid="5337407023566953292">"Тармакка катталды."</string>
     <string name="already_auto" msgid="8607068290733079336">"Мурунтан эле автоматтык түрдө тандоодо."</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>
@@ -249,8 +274,8 @@
     <string name="data_enable_summary" msgid="696860063456536557">"Дайындарды пайдаланууга уруксат берүү"</string>
     <string name="dialog_alert_title" msgid="5260471806940268478">"Көңүл буруңуз"</string>
     <string name="roaming" msgid="1576180772877858949">"Роуминг"</string>
-    <string name="roaming_enable" msgid="6853685214521494819">"Роуминг учурунда мобилдик Интернетке туташат"</string>
-    <string name="roaming_disable" msgid="8856224638624592681">"Роуминг учурунда мобилдик Интернетке туташат"</string>
+    <string name="roaming_enable" msgid="6853685214521494819">"Роуминг учурунда дайын-даректерди өткөрүүчү кызматтарга туташуу"</string>
+    <string name="roaming_disable" msgid="8856224638624592681">"Роуминг учурунда дайын-даректерди өткөрүүчү кызматтарга туташуу"</string>
     <string name="roaming_reenable_message" msgid="1951802463885727915">"Интернет-роуминг өчүрүлгөн. Күйгүзүү үчүн басыңыз."</string>
     <string name="roaming_enabled_message" msgid="9022249120750897">"Роуминг акысын төлөп калышыңыз мүмкүн. Өзгөртүү үчүн таптап коюңуз."</string>
     <string name="roaming_notification_title" msgid="3590348480688047320">"Мобилдик интернет туташуусу үзүлдү"</string>
@@ -260,7 +285,7 @@
     <string name="roaming_alert_title" msgid="5689615818220960940">"Интернет-роумингди иштетесизби?"</string>
     <string name="limited_sim_function_notification_title" msgid="612715399099846281">"SIM-картанын функциялары чектелген"</string>
     <string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"<xliff:g id="PHONE_NUMBER">%2$s</xliff:g> номерин колдонгондо <xliff:g id="CARRIER_NAME">%1$s</xliff:g> чалуулары жана дайындар кызматтары бөгөттөлүшү мүмкүн."</string>
-    <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"Башка SIM-картаны колднгндо <xliff:g id="CARRIER_NAME">%1$s</xliff:g> чалуулары жана дайындар кызмттары бөгөттлшү мүмкүн."</string>
+    <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"Башка SIM картаны колднгндо <xliff:g id="CARRIER_NAME">%1$s</xliff:g> чалуулары жана дайындар кызмттары бөгөттлшү мүмкүн."</string>
     <string name="data_usage_title" msgid="8438592133893837464">"Колдонмолордун трафиги"</string>
     <string name="data_usage_template" msgid="6287906680674061783">"<xliff:g id="ID_2">%2$s</xliff:g> аралыгында <xliff:g id="ID_1">%1$s</xliff:g> мобилдик трафик колдонулду"</string>
     <string name="advanced_options_title" msgid="9208195294513520934">"Өркүндөтүлгөн"</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>
@@ -517,7 +543,7 @@
     <string name="incall_error_supp_service_hold" msgid="8535056414643540997">"Чалууну кармап туруу мүмкүн эмес."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"Чалуу үчүн зымсыз тармакка туташыңыз."</string>
     <string name="incall_error_promote_wfc" msgid="9164896813931363415">"Wi-Fi аркылуу чалыңыз."</string>
-    <string name="emergency_information_hint" msgid="9208897544917793012">"Өзгөчө кырдаал маалыматы"</string>
+    <string name="emergency_information_hint" msgid="9208897544917793012">"Кырсыктаганда керек болчу маалымат"</string>
     <string name="emergency_information_owner_hint" msgid="6256909888049185316">"Ээси"</string>
     <string name="emergency_information_confirm_hint" msgid="5109017615894918914">"Маалыматты көрүү үчүн кайра таптап коюңуз"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"Шашылыш чалуу"</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>
@@ -548,7 +575,7 @@
     <string name="onscreenVideoCallText" msgid="1743992456126258698">"Видео чалуу"</string>
     <string name="importSimEntry" msgid="3892354284082689894">"Импорттоо"</string>
     <string name="importAllSimEntries" msgid="2628391505643564007">"Баарын импорттоо"</string>
-    <string name="importingSimContacts" msgid="4995457122107888932">"SIM-картадагы байланыштардан импорттоо"</string>
+    <string name="importingSimContacts" msgid="4995457122107888932">"SIM картадагы байланыштардан импорттоо"</string>
     <string name="importToFDNfromContacts" msgid="5068664870738407341">"Байланыштардан импорттоо"</string>
     <string name="singleContactImportedMsg" msgid="3619804066300998934">"Байланыш импорттолду"</string>
     <string name="failedToImportSingleContactMsg" msgid="228095510489830266">"Байланыш импорттолбой калды"</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>
@@ -640,7 +674,7 @@
     <string name="message_decode_error" msgid="1061856591500290887">"Билдирүү дешифрленип жатканда ката кеткен."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM-карта кызматыңызды жандырып, телефонуңуздун роуминг мүмкүнчүлүктөрүн жаңыртты."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Учурда жигердүү чалуулар өтө көп. Чалуу үчүн учурдагы чалууларды бүтүрүңүз же бириктириңиз."</string>
-    <string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"Байланышуу мумкүн эмес. Жарактуу SIM-картаны салыңыз."</string>
+    <string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"Байланышуу мумкүн эмес. Жарактуу SIM картаны салыңыз."</string>
     <string name="callFailed_wifi_lost" msgid="1788036730589163141">"Wi-Fi туташуусу үзүлүп калды. Чалуу аяктады."</string>
     <string name="dialFailed_low_battery" msgid="6857904237423407056">"Батареянын заряды төмөн болгондуктан, видео режиминде чала албайсыз."</string>
     <string name="callFailed_low_battery" msgid="4056828320214416182">"Батареянын заряды төмөн болгондуктан, видео чалуу аяктады."</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 6c7b1b6..15a9e35 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>
@@ -377,6 +402,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>
@@ -441,7 +467,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>
@@ -532,6 +558,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>
@@ -559,6 +586,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>
@@ -615,6 +643,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>
@@ -754,7 +790,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>
@@ -763,7 +799,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>
@@ -793,4 +828,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 da177d0..6b27de9 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>
@@ -72,7 +74,7 @@
     <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"Конфигурирајте ги поставките на сметка"</string>
     <string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"Сите сметки за повици"</string>
     <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"Изберете кои сметки може да повикуваат"</string>
-    <string name="wifi_calling" msgid="3650509202851355742">"Повикување преку Wi-Fi"</string>
+    <string name="wifi_calling" msgid="3650509202851355742">"Повик преку Wi-Fi"</string>
     <string name="connection_service_default_label" msgid="7332739049855715584">"Вградена услуга на поврзување"</string>
     <string name="voicemail" msgid="7697769412804195032">"Говорна пошта"</string>
     <string name="voicemail_settings_with_label" msgid="4228431668214894138">"Говорна пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</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>
@@ -273,7 +298,7 @@
     <string name="sim_selection_required_pref" msgid="6985901872978341314">"Треба да се избере"</string>
     <string name="sim_change_data_title" msgid="9142726786345906606">"Да се промени SIM за интернет?"</string>
     <string name="sim_change_data_message" msgid="3567358694255933280">"Да се користи <xliff:g id="NEW_SIM">%1$s</xliff:g> наместо <xliff:g id="OLD_SIM">%2$s</xliff:g> за мобилен интернет?"</string>
-    <string name="wifi_calling_settings_title" msgid="5800018845662016507">"Повикување преку Wi-Fi"</string>
+    <string name="wifi_calling_settings_title" msgid="5800018845662016507">"Повик преку Wi-Fi"</string>
     <string name="video_calling_settings_title" msgid="342829454913266078">"Видеоповикување преку оператор"</string>
     <string name="gsm_umts_options" msgid="4968446771519376808">"Опции за GSM/UMTS"</string>
     <string name="cdma_options" msgid="3669592472226145665">"Опции на CDMA"</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>
@@ -517,7 +543,7 @@
     <string name="incall_error_supp_service_hold" msgid="8535056414643540997">"Не може да се задржат повици."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"Поврзете се на безжична мрежа за да повикате."</string>
     <string name="incall_error_promote_wfc" msgid="9164896813931363415">"Овозможете повикување преку Wi-Fi за воспоставување повик."</string>
-    <string name="emergency_information_hint" msgid="9208897544917793012">"Информации за итни случаи"</string>
+    <string name="emergency_information_hint" msgid="9208897544917793012">"Податоци за итни случаи"</string>
     <string name="emergency_information_owner_hint" msgid="6256909888049185316">"Сопственик"</string>
     <string name="emergency_information_confirm_hint" msgid="5109017615894918914">"Допрете повторно за приказ на информации"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"Повик за итни случаи"</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">"Овозможено е повикување преку 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..8cb48c4 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -25,8 +25,10 @@
     <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="ussdRunning" msgid="1163586813106772717">"USSD कोड सुरू…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI कोड रद्द केला"</string>
     <string name="cancel" msgid="8984206397635155197">"रद्द करा"</string>
     <string name="enter_input" msgid="6193628663039958990">"USSD मेसेज <xliff:g id="MIN_LEN">%1$d</xliff:g> आणि <xliff:g id="MAX_LEN">%2$d</xliff:g> वर्णांमधील असणे आवश्‍यक आहे. कृपया पुन्‍हा प्रयत्‍न करा."</string>
@@ -35,7 +37,7 @@
     <string name="audio_mode_speaker" msgid="243689733219312360">"स्पीकर"</string>
     <string name="audio_mode_earpiece" msgid="2823700267171134282">"हँडसेट इअरपीस"</string>
     <string name="audio_mode_wired_headset" msgid="5028010823105817443">"वायर्ड हेडसेट"</string>
-    <string name="audio_mode_bluetooth" msgid="25732183428018809">"ब्लूटुथ"</string>
+    <string name="audio_mode_bluetooth" msgid="25732183428018809">"ब्लूटूथ"</string>
     <string name="wait_prompt_str" msgid="5136209532150094910">"खालील टोन पाठवायचे?\n"</string>
     <string name="pause_prompt_str" msgid="2308897950360272213">"टोन पाठवित आहे\n"</string>
     <string name="send_button" msgid="5070379600779031932">"पाठवा"</string>
@@ -103,7 +105,7 @@
     <string name="labelCFU" msgid="8870170873036279706">"नेहमी फॉरवर्ड करा"</string>
     <string name="messageCFU" msgid="1361806450979589744">"नेहमी हा नंबर वापरा"</string>
     <string name="sum_cfu_enabled_indicator" msgid="9030139213402432776">"सर्व कॉल अग्रेषित करत आहे"</string>
-    <string name="sum_cfu_enabled" msgid="5806923046528144526">"सर्व कॉल <xliff:g id="PHONENUMBER">{0}</xliff:g> वर अग्रेषित करत आहे"</string>
+    <string name="sum_cfu_enabled" msgid="5806923046528144526">"सर्व कॉल <xliff:g id="PHONENUMBER">{0}</xliff:g> वर फॉरवर्ड करत आहे"</string>
     <string name="sum_cfu_enabled_no_number" msgid="7287752761743377930">"नंबर अनुपलब्‍ध आहे"</string>
     <string name="sum_cfu_disabled" msgid="5010617134210809853">"बंद"</string>
     <string name="labelCFB" msgid="615265213360512768">"व्यस्त असताना"</string>
@@ -134,10 +136,10 @@
     <string name="stk_cc_ss_to_ussd_error" msgid="8330749347425752192">"SS विनंती USSD विनंतीवर बदलली"</string>
     <string name="stk_cc_ss_to_ss_error" msgid="8297155544652134278">"नवीन SS विनंतीवर बदलली"</string>
     <string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"SS विनंती व्हिडिओ कॉलवर बदलली"</string>
-    <string name="fdn_check_failure" msgid="1833769746374185247">"आपल्‍या फोन अ‍ॅप्‍सचे निश्चित डायलिंग नंबर सेटिंग चालू केले. परिणामी, काही कॉल संबंधित वैशिष्‍ट्ये कार्य करीत नाहीत."</string>
-    <string name="radio_off_error" msgid="8321564164914232181">"या सेटिंग्‍ज पाहण्‍यापूर्वी रेडिओ चालू करा."</string>
+    <string name="fdn_check_failure" msgid="1833769746374185247">"आपल्‍या फोन अ‍ॅप्‍सचे निश्चित डायलिंग नंबर सेटिंग सुरू केले. परिणामी, काही कॉल संबंधित वैशिष्‍ट्ये कार्य करीत नाहीत."</string>
+    <string name="radio_off_error" msgid="8321564164914232181">"या सेटिंग्‍ज पाहण्‍यापूर्वी रेडिओ सुरू करा."</string>
     <string name="close_dialog" msgid="1074977476136119408">"ठीक"</string>
-    <string name="enable" msgid="2636552299455477603">"चालू करा"</string>
+    <string name="enable" msgid="2636552299455477603">"सुरू करा"</string>
     <string name="disable" msgid="1122698860799462116">"बंद करा"</string>
     <string name="change_num" msgid="6982164494063109334">"अपडेट करा"</string>
   <string-array name="clir_display_values">
@@ -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>
@@ -496,7 +522,7 @@
     <string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"व्हॉइसमेल नंबर अज्ञात"</string>
     <string name="notification_network_selection_title" msgid="255595526707809121">"सेवा नाही"</string>
     <string name="notification_network_selection_text" msgid="553288408722427659">"निवडलेले नेटवर्क<xliff:g id="OPERATOR_NAME">%s</xliff:g> उपलब्ध नाही"</string>
-    <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"कॉल करण्‍यासाठी मोबाइल नेटवर्क चालू करा, विमान मोड बंद करा किंवा बॅटरी बचकर्ता मोड बंद करा."</string>
+    <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"कॉल करण्‍यासाठी मोबाइल नेटवर्क सुरू करा, विमान मोड बंद करा किंवा बॅटरी बचकर्ता मोड बंद करा."</string>
     <string name="incall_error_power_off" product="default" msgid="8131672264311208673">"कॉल करण्‍यासाठी विमान मोड बंद करा."</string>
     <string name="incall_error_power_off_wfc" msgid="9125661184694727052">"कॉल करण्‍यासाठी विमान मोड बंद करा किंवा वायरलेस नेटवर्कशी कनेक्‍ट करा."</string>
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"आणीबाणी नसलेला कॉल करण्‍यासाठी आणीबाणी कॉलबॅक मोडमधून बाहेर पडा."</string>
@@ -514,7 +540,7 @@
     <string name="incall_error_supp_service_conference" msgid="27578082433544702">"कॉल विलीन करता आले नाहीत."</string>
     <string name="incall_error_supp_service_reject" msgid="3044363092441655912">"कॉल नाकारू शकत नाही."</string>
     <string name="incall_error_supp_service_hangup" msgid="836524952243836735">"कॉल रिलीज करू शकत नाही."</string>
-    <string name="incall_error_supp_service_hold" msgid="8535056414643540997">"कॉल सुरु ठेवू शकत नाही."</string>
+    <string name="incall_error_supp_service_hold" msgid="8535056414643540997">"कॉल सुरू ठेवू शकत नाही."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"कॉल करण्‍यासाठी वायरलेस नेटवर्कशी कनेक्‍ट करा."</string>
     <string name="incall_error_promote_wfc" msgid="9164896813931363415">"कॉल करण्यासाठी वाय-फाय कॉलिंग सक्षम करा."</string>
     <string name="emergency_information_hint" msgid="9208897544917793012">"अतिमहत्त्वाची माहिती"</string>
@@ -524,12 +550,13 @@
     <string name="single_emergency_number_title" msgid="8413371079579067196">"आणीबाणी नंबर"</string>
     <string name="numerous_emergency_numbers_title" msgid="8972398932506755510">"आणीबाणी नंबर"</string>
     <string name="emergency_call_shortcut_hint" msgid="1290485125107779500">"<xliff:g id="EMERGENCY_NUMBER">%s</xliff:g> ला कॉल करण्यासाठी पुन्हा टॅप करा"</string>
-    <string name="emergency_enable_radio_dialog_message" msgid="1695305158151408629">"रेडिओ चालू करत आहे..."</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="1695305158151408629">"रेडिओ सुरू करत आहे..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="4329131876852608587">"सेवा नाही. पुन्हा प्रयत्न करत आहे…"</string>
     <string name="radio_off_during_emergency_call" msgid="8011154134040481609">"आणीबाणी कॉलदरम्यान विमान मोडमध्ये प्रवेश करू शकत नाही."</string>
     <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>
@@ -553,10 +580,11 @@
     <string name="singleContactImportedMsg" msgid="3619804066300998934">"इंपोर्ट केलेला संपर्क"</string>
     <string name="failedToImportSingleContactMsg" msgid="228095510489830266">"संपर्क इंपोर्ट करण्यात अयशस्वी"</string>
     <string name="hac_mode_title" msgid="4127986689621125468">"श्रवणयंत्रे"</string>
-    <string name="hac_mode_summary" msgid="7774989500136009881">"श्रवणयंत्र कंपॅटिबिलिटी चालू करा"</string>
+    <string name="hac_mode_summary" msgid="7774989500136009881">"श्रवणयंत्र कंपॅटिबिलिटी सुरू करा"</string>
     <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>
@@ -576,7 +604,7 @@
     <string name="ota_hfa_activation_title" msgid="3300556778212729671">"सक्रिय करत आहे..."</string>
     <string name="ota_hfa_activation_dialog_message" msgid="7921718445773342996">"फोन तुमची मोबाइल डेटा सेवा सक्रिय करत आहे.\n\nयास सुमारे 5 मिनिटे लागतील."</string>
     <string name="ota_skip_activation_dialog_title" msgid="7666611236789203797">"सक्रिय करणे वगळायचे?"</string>
-    <string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"तुम्ही सक्रिय करणे वगळल्‍यास, तुम्ही कॉल करू शकत नाही किंवा मोबाइल डेटा नेटवर्कशी कनेक्‍ट करू शकत नाही (तुम्ही वाय-फाय नेटवर्कशी कनेक्‍ट करू शकत असला तरीही). तुम्ही तुमचा फोन सक्रिय करेपर्यंत, तुम्ही तो प्रत्‍येक वेळी चालू करताना आपल्‍याला तो सक्रिय करण्‍यास सांगितले जाईल."</string>
+    <string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"तुम्ही सक्रिय करणे वगळल्‍यास, तुम्ही कॉल करू शकत नाही किंवा मोबाइल डेटा नेटवर्कशी कनेक्‍ट करू शकत नाही (तुम्ही वाय-फाय नेटवर्कशी कनेक्‍ट करू शकत असला तरीही). तुम्ही तुमचा फोन सक्रिय करेपर्यंत, तुम्ही तो प्रत्‍येक वेळी सुरू करताना आपल्‍याला तो सक्रिय करण्‍यास सांगितले जाईल."</string>
     <string name="ota_skip_activation_dialog_skip_label" msgid="5908029466817825633">"वगळा"</string>
     <string name="ota_activate" msgid="7939695753665438357">"सक्रिय करा"</string>
     <string name="ota_title_activate_success" msgid="1272135024761004889">"फोन सक्रिय केला आहे."</string>
@@ -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>
@@ -626,8 +660,8 @@
     <string name="voicemail_change_pin_dialog_title" msgid="4633077715231764435">"पिन बदला"</string>
     <string name="preference_category_ringtone" msgid="8787281191375434976">"रिंगटोन आणि कंपन"</string>
     <string name="pstn_connection_service_label" msgid="9200102709997537069">"अंगभूत सिम कार्डे"</string>
-    <string name="enable_video_calling_title" msgid="7246600931634161830">"व्हिडिओ कॉलिंग चालू करा"</string>
-    <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"व्हिडिओ कॉल करणे चालू करण्‍यासाठी, आपल्‍याला नेटवर्क सेटिंग्ज मधील वर्धित 4G LTE मोड सक्षम करणे आवश्‍यक आहे."</string>
+    <string name="enable_video_calling_title" msgid="7246600931634161830">"व्हिडिओ कॉलिंग सुरू करा"</string>
+    <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"व्हिडिओ कॉल करणे सुरू करण्‍यासाठी, आपल्‍याला नेटवर्क सेटिंग्ज मधील वर्धित 4G LTE मोड सक्षम करणे आवश्‍यक आहे."</string>
     <string name="enable_video_calling_dialog_settings" msgid="8697890611305307110">"नेटवर्क सेटिंग्ज"</string>
     <string name="enable_video_calling_dialog_close" msgid="4298929725917045270">"बंद करा"</string>
     <string name="sim_label_emergency_calls" msgid="9078241989421522310">"आणीबाणी कॉल"</string>
@@ -651,7 +685,7 @@
     <string name="change_pin_cancel_label" msgid="2301711566758827936">"रद्द करा"</string>
     <string name="change_pin_ok_label" msgid="6861082678817785330">"ठीक आहे"</string>
     <string name="change_pin_enter_old_pin_header" msgid="853151335217594829">"आपल्या जुन्या पिनची पुष्टी करा"</string>
-    <string name="change_pin_enter_old_pin_hint" msgid="8801292976275169367">"सुरु ठेवण्‍यासाठी तुमचा व्हॉइसमेल पिन प्रविष्‍ट करा."</string>
+    <string name="change_pin_enter_old_pin_hint" msgid="8801292976275169367">"सुरू ठेवण्‍यासाठी तुमचा व्हॉइसमेल पिन प्रविष्‍ट करा."</string>
     <string name="change_pin_enter_new_pin_header" msgid="4739465616733486118">"नवीन पिन सेट करा"</string>
     <string name="change_pin_enter_new_pin_hint" msgid="2326038476516364210">"पिन <xliff:g id="MIN">%1$d</xliff:g>-<xliff:g id="MAX">%2$d</xliff:g> अंकी असणे आवश्‍यक आहे."</string>
     <string name="change_pin_confirm_pin_header" msgid="2606303906320705726">"आपल्या पिनची पुष्टी करा"</string>
@@ -659,7 +693,7 @@
     <string name="change_pin_succeeded" msgid="2504705600693014403">"व्हॉइसमेल पिन अपडेट केला"</string>
     <string name="change_pin_system_error" msgid="7772788809875146873">"पिन सेट करण्यात अक्षम"</string>
     <string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"डेटा रोमिंग बंद केलेले आहे"</string>
-    <string name="mobile_data_status_roaming_turned_on_subtext" msgid="5615757897768777865">"डेटा रोमिंग चालू केलेले आहे"</string>
+    <string name="mobile_data_status_roaming_turned_on_subtext" msgid="5615757897768777865">"डेटा रोमिंग सुरू केलेले आहे"</string>
     <string name="mobile_data_status_roaming_without_plan_subtext" msgid="6536671968072284677">"सध्या रोमिंग, डेटा योजना आवश्यक आहे"</string>
     <string name="mobile_data_status_roaming_with_plan_subtext" msgid="2576177169108123095">"सध्या रोमिंग, डेटा योजना सक्रिय आहे"</string>
     <string name="mobile_data_status_no_plan_subtext" msgid="170331026419263657">"मोबाइल डेटा शिल्लक नाही"</string>
@@ -673,7 +707,7 @@
     <string name="mobile_data_activate_button" msgid="1139792516354374612">"डेटा जोडा"</string>
     <string name="mobile_data_activate_cancel_button" msgid="3530174817572005860">"रद्द करा"</string>
     <string name="clh_card_title_call_ended_txt" msgid="5977978317527299698">"कॉल संपला"</string>
-    <string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"विमान मोड चालू आहे"</string>
+    <string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"विमान मोड सुरू आहे"</string>
     <string name="clh_callFailed_simError_txt" msgid="5128538525762326413">"सिम कार्ड अ‍ॅक्सेस करू शकत नाही"</string>
     <string name="clh_incall_error_out_of_service_txt" msgid="2736010617446749869">"मोबाइल नेटवर्क उपलब्ध नाही"</string>
     <string name="clh_callFailed_unassigned_number_txt" msgid="141967660286695682">"तुम्ही डायल करायचा प्रयत्न करत असलेल्या फोन नंबरमध्ये समस्या आहे. एरर कोड 1."</string>
@@ -726,7 +760,7 @@
     <string name="clh_callFailed_protocol_Error_unspecified_txt" msgid="9203320572562697755">"कॉल पूर्ण करता आला नाही. एरर कोड १११."</string>
     <string name="clh_callFailed_interworking_unspecified_txt" msgid="7969686413930847182">"कॉल पूर्ण करता आला नाही. एरर कोड १२७."</string>
     <string name="labelCallBarring" msgid="4180377113052853173">"कॉल बारिंग"</string>
-    <string name="sum_call_barring_enabled" msgid="5184331188926370824">"चालू"</string>
+    <string name="sum_call_barring_enabled" msgid="5184331188926370824">"सुरू"</string>
     <string name="sum_call_barring_disabled" msgid="5699448000600153096">"बंद"</string>
     <string name="call_barring_baoc" msgid="7400892586336429326">"सर्व जाणारे"</string>
     <string name="call_barring_baoc_enabled" msgid="3131509193386668182">"सर्व जाणारे कॉल ब्लॉक करणे बंद करायचे का?"</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 3d8c5ab..60f2da8 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 12049cc..6629893 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>
@@ -375,6 +400,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>
@@ -439,7 +465,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>
@@ -530,6 +556,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>
@@ -557,6 +584,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>
@@ -609,6 +637,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>
@@ -748,7 +782,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>
@@ -757,7 +791,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>
@@ -787,4 +820,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..b7fe2fc 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>
@@ -134,7 +136,7 @@
     <string name="stk_cc_ss_to_ussd_error" msgid="8330749347425752192">"SS अनुरोध USSD अनुरोधमा परिवर्तन गरियो"</string>
     <string name="stk_cc_ss_to_ss_error" msgid="8297155544652134278">"नयाँ SS अनुरोधमा परिवर्तन गरियो"</string>
     <string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"SS अनुरोध भिडियो कलमा परिवर्तन गरियो"</string>
-    <string name="fdn_check_failure" msgid="1833769746374185247">"तपाईंको फोन अनुप्रयोग स्थिर डायल गर्ने नम्बर सेटिङहरू खोलिएको छ। केही कल-सम्बन्धित विशेषताहरूले कार्य गरिरहेका छैनन्।"</string>
+    <string name="fdn_check_failure" msgid="1833769746374185247">"तपाईंको फोन एप स्थिर डायल गर्ने नम्बर सेटिङहरू खोलिएको छ। केही कल-सम्बन्धित विशेषताहरूले कार्य गरिरहेका छैनन्।"</string>
     <string name="radio_off_error" msgid="8321564164914232181">"यी सेटिङहरू हेर्नु पहिले रेडियो खोल्नुहोस्।"</string>
     <string name="close_dialog" msgid="1074977476136119408">"ठिक छ"</string>
     <string name="enable" msgid="2636552299455477603">"सकृय पार्नुहोस्"</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>
@@ -595,10 +623,10 @@
     <string name="phone_entered_ecm_text" msgid="8431238297843035842">"आपतकालीन कलब्याक मोड प्रविष्टि गरियो"</string>
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"आपतकालीन कलब्याक मोड"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"डेटा जडान अक्षम भयो"</string>
-    <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"<xliff:g id="COMPLETETIME">%s</xliff:g> सम्म डेटा जडान भएको छैन"</string>
+    <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"<xliff:g id="COMPLETETIME">%s</xliff:g> सम्म डेटा कनेक्ट भएको छैन"</string>
     <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other"> फोन आपतकालीन कलब्याक मोडमा <xliff:g id="COUNT_1">%s</xliff:g> मिनेटको लागि हुनेछ। यस मोडको अवस्थामा एक डेटा जडान प्रयोग गरेर कुनै पनि अनुप्रयोगहरू प्रयोग गर्न सकिँदैन। के तपाईं अहिले निस्कन चाहनुहुन्छ?</item>
-      <item quantity="one"> फोन आपतकालीन कलब्याक मोडमा <xliff:g id="COUNT_0">%s</xliff:g> मिनेटको लागि हुनेछ। यस मोडको समयमा एक डेटा जडान प्रयोग गरेर कुनै पनि अनुप्रयोगहरू प्रयोग गर्न सकिँदैन। के तपाईं अहिले निस्कन चाहनुहुन्छ?</item>
+      <item quantity="other"> फोन आपतकालीन कलब्याक मोडमा <xliff:g id="COUNT_1">%s</xliff:g> मिनेटको लागि हुनेछ। यस मोडको अवस्थामा एक डेटा जडान प्रयोग गरेर कुनै पनि एपहरू प्रयोग गर्न सकिँदैन। के तपाईं अहिले निस्कन चाहनुहुन्छ?</item>
+      <item quantity="one"> फोन आपतकालीन कलब्याक मोडमा <xliff:g id="COUNT_0">%s</xliff:g> मिनेटको लागि हुनेछ। यस मोडको समयमा एक डेटा जडान प्रयोग गरेर कुनै पनि एपहरू प्रयोग गर्न सकिँदैन। के तपाईं अहिले निस्कन चाहनुहुन्छ?</item>
     </plurals>
     <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
       <item quantity="other"> आपतकालीन कलब्याक मोडको समयमा चयनित कार्य उपलब्ध छैन। फोन यस मोडमा <xliff:g id="COUNT_1">%s</xliff:g> मिनेटको लागि हुनेछ। के तपाईं अहिले निस्कन चाहनुहुन्छ?</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 c8bb14c..6dddcf8 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>
@@ -520,7 +546,7 @@
     <string name="emergency_information_hint" msgid="9208897544917793012">"ଜରୁରୀକାଳୀନ ସୂଚନା"</string>
     <string name="emergency_information_owner_hint" msgid="6256909888049185316">"ମାଲିକ"</string>
     <string name="emergency_information_confirm_hint" msgid="5109017615894918914">"ସୂଚନା ଦେଖିବାକୁ ପୁଣିଥରେ ଟାପ୍‍ କରନ୍ତୁ"</string>
-    <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"ଜରୁରୀକାଳିନ କଲ୍‌"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"ଜରୁରୀକାଳୀନ କଲ୍‌"</string>
     <string name="single_emergency_number_title" msgid="8413371079579067196">"ଜରୁରୀକାଳୀନ ନମ୍ବର୍‌"</string>
     <string name="numerous_emergency_numbers_title" msgid="8972398932506755510">"ଜରୁରୀକାଳୀନ ନମ୍ବର୍‌"</string>
     <string name="emergency_call_shortcut_hint" msgid="1290485125107779500">"<xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>ରେ କଲ୍‌ କରନ୍ତୁ"</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 027e34a..410887c 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>
@@ -659,7 +695,7 @@
     <string name="change_pin_enter_new_pin_header" msgid="4739465616733486118">"Ustaw nowy kod PIN"</string>
     <string name="change_pin_enter_new_pin_hint" msgid="2326038476516364210">"Kod PIN musi zawierać od <xliff:g id="MIN">%1$d</xliff:g> do <xliff:g id="MAX">%2$d</xliff:g> cyfr."</string>
     <string name="change_pin_confirm_pin_header" msgid="2606303906320705726">"Potwierdź kod PIN"</string>
-    <string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"Kody PIN nie są identyczne."</string>
+    <string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"Kody PIN nie są takie same"</string>
     <string name="change_pin_succeeded" msgid="2504705600693014403">"Kod PIN poczty głosowej został zaktualizowany."</string>
     <string name="change_pin_system_error" msgid="7772788809875146873">"Nie udało się ustawić kodu PIN"</string>
     <string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"Transmisja danych w roamingu jest wyłączona"</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..3c33d08 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>
@@ -134,7 +136,7 @@
     <string name="stk_cc_ss_to_ussd_error" msgid="8330749347425752192">"Pedido SS alterado para um novo pedido USSD"</string>
     <string name="stk_cc_ss_to_ss_error" msgid="8297155544652134278">"Foi alterado para um novo pedido SS"</string>
     <string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"O pedido SS foi alterado para uma videochamada"</string>
-    <string name="fdn_check_failure" msgid="1833769746374185247">"A definição Números Autorizados da aplicação do seu Telemóvel está ativada. Por conseguinte, algumas funcionalidades relacionadas com chamadas não estão a funcionar."</string>
+    <string name="fdn_check_failure" msgid="1833769746374185247">"A definição Números Autorizados da app do seu Telemóvel está ativada. Por conseguinte, algumas funcionalidades relacionadas com chamadas não estão a funcionar."</string>
     <string name="radio_off_error" msgid="8321564164914232181">"Ative o rádio antes de visualizar estas definições."</string>
     <string name="close_dialog" msgid="1074977476136119408">"OK"</string>
     <string name="enable" msgid="2636552299455477603">"Ativar"</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>
@@ -261,7 +286,7 @@
     <string name="limited_sim_function_notification_title" msgid="612715399099846281">"Funcionalidade de SIM limitada"</string>
     <string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"As chamadas e os serviços de dados da <xliff:g id="CARRIER_NAME">%1$s</xliff:g> podem ficar bloqueados ao utilizar o número <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>."</string>
     <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"As chamadas e serviços de dados da <xliff:g id="CARRIER_NAME">%1$s</xliff:g> podem ser bloqueados se utilizar outro SIM."</string>
-    <string name="data_usage_title" msgid="8438592133893837464">"Utilização de dados da aplicação"</string>
+    <string name="data_usage_title" msgid="8438592133893837464">"Utilização de dados da app"</string>
     <string name="data_usage_template" msgid="6287906680674061783">"<xliff:g id="ID_1">%1$s</xliff:g> de dados móveis utilizados entre <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="advanced_options_title" msgid="9208195294513520934">"Avançadas"</string>
     <string name="carrier_settings_euicc" msgid="1190237227261337749">"Operador"</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 c1f38f6..0421272 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>
@@ -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">"Не удалось включить 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">"Телетайп выключен"</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>\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 8fddc9d..dcb5e1f 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 e270260..0c30a13 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>
@@ -375,6 +400,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>
@@ -439,7 +465,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>
@@ -530,6 +556,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>
@@ -557,6 +584,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>
@@ -609,6 +637,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>
@@ -748,7 +782,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>
@@ -757,7 +791,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>
@@ -787,4 +820,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 e0ba6fd..2773b7b 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 0e61641..f73ff2a 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 acf7e64..2646327 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>
@@ -554,9 +581,10 @@
     <string name="failedToImportSingleContactMsg" msgid="228095510489830266">"పరిచయాన్ని దిగుమతి చేయడంలో విఫలమైంది"</string>
     <string name="hac_mode_title" msgid="4127986689621125468">"వినికిడి సహాయక సాధనాలు"</string>
     <string name="hac_mode_summary" msgid="7774989500136009881">"వినికిడి సహాయక సాధనం అనుకూలతను ప్రారంభించండి"</string>
-    <string name="rtt_mode_title" msgid="3075948111362818043">"నిజ సమయ వచనం (RTT) కాల్"</string>
+    <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 710a30b..29fb43d 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>
@@ -399,8 +425,8 @@
     <string name="cdma_activate_device" msgid="5914720276140097632">"เปิดใช้งานอุปกรณ์"</string>
     <string name="cdma_lte_data_service" msgid="359786441782404562">"ตั้งค่าบริการข้อมูล"</string>
     <string name="carrier_settings_title" msgid="6292869148169850220">"การตั้งค่าของผู้ให้บริการ"</string>
-    <string name="fdn" msgid="2545904344666098749">"การจำกัดหมายเลขโทรออก"</string>
-    <string name="fdn_with_label" msgid="6412087553365709494">"โหมดจำกัดการโทร (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+    <string name="fdn" msgid="2545904344666098749">"หมายเลขโทรออกที่กำหนดตายตัว"</string>
+    <string name="fdn_with_label" msgid="6412087553365709494">"หมายเลขโทรออกที่กำหนดตายตัว (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="manage_fdn_list" msgid="3341716430375195441">"รายการ FDN"</string>
     <string name="fdn_list_with_label" msgid="1409655283510382556">"รายการ FDN (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
     <string name="fdn_activation" msgid="2178637004710435895">"การเปิดใช้งาน FDN"</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>
@@ -492,7 +518,7 @@
     <string name="card_title_in_call" msgid="8231896539567594265">"กำลังใช้สาย"</string>
     <string name="notification_voicemail_title" msgid="3932876181831601351">"ข้อความเสียงใหม่"</string>
     <string name="notification_voicemail_title_count" msgid="2806950319222327082">"ข้อความเสียงใหม่ (<xliff:g id="COUNT">%d</xliff:g>)"</string>
-    <string name="notification_voicemail_text_format" msgid="5720947141702312537">"หมุนหมายเลข <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_text_format" msgid="5720947141702312537">"โทร <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
     <string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"ไม่ทราบหมายเลขข้อความเสียง"</string>
     <string name="notification_network_selection_title" msgid="255595526707809121">"ไม่มีบริการ"</string>
     <string name="notification_network_selection_text" msgid="553288408722427659">"เครือข่ายที่เลือกไว้<xliff:g id="OPERATOR_NAME">%s</xliff:g> ไม่พร้อมใช้งาน"</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 d56af37..7f5b8cb 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 128968a..a171138 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 e588bef..da1adf4 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>
@@ -252,7 +277,7 @@
     <string name="roaming_enable" msgid="6853685214521494819">"Kết nối với dịch vụ dữ liệu khi chuyển vùng"</string>
     <string name="roaming_disable" msgid="8856224638624592681">"Kết nối với dịch vụ dữ liệu khi chuyển vùng"</string>
     <string name="roaming_reenable_message" msgid="1951802463885727915">"Tính năng Chuyển vùng dữ liệu bị tắt. Nhấn để bật."</string>
-    <string name="roaming_enabled_message" msgid="9022249120750897">"Có thể áp dụng phí chuyển vùng. Nhấn để sửa đổi."</string>
+    <string name="roaming_enabled_message" msgid="9022249120750897">"Bạn có thể bị tính phí chuyển vùng. Nhấn để sửa đổi."</string>
     <string name="roaming_notification_title" msgid="3590348480688047320">"Đã mất kết nối dữ liệu di động"</string>
     <string name="roaming_on_notification_title" msgid="7451473196411559173">"Chuyển vùng dữ liệu đang bật"</string>
     <string name="roaming_warning" msgid="7855681468067171971">"Bạn có thể phải trả một khoản phí lớn."</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..d7a7329 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>
@@ -251,13 +276,13 @@
     <string name="roaming" msgid="1576180772877858949">"漫游"</string>
     <string name="roaming_enable" msgid="6853685214521494819">"漫游时连接到移动数据网络服务"</string>
     <string name="roaming_disable" msgid="8856224638624592681">"漫游时连接到移动数据网络服务"</string>
-    <string name="roaming_reenable_message" msgid="1951802463885727915">"数据网络漫游已停用。点按即可启用。"</string>
+    <string name="roaming_reenable_message" msgid="1951802463885727915">"数据漫游已关闭。点按即可开启。"</string>
     <string name="roaming_enabled_message" msgid="9022249120750897">"可能需要支付漫游费。点按即可修改。"</string>
     <string name="roaming_notification_title" msgid="3590348480688047320">"移动网络连接中断"</string>
-    <string name="roaming_on_notification_title" msgid="7451473196411559173">"已开启数据网络漫游功能"</string>
+    <string name="roaming_on_notification_title" msgid="7451473196411559173">"已开启数据漫游功能"</string>
     <string name="roaming_warning" msgid="7855681468067171971">"这可能会产生高额费用。"</string>
     <string name="roaming_check_price_warning" msgid="8212484083990570215">"请与您的网络服务提供商联系以了解定价。"</string>
-    <string name="roaming_alert_title" msgid="5689615818220960940">"要允许移动数据网络漫游吗？"</string>
+    <string name="roaming_alert_title" msgid="5689615818220960940">"允许数据漫游？"</string>
     <string name="limited_sim_function_notification_title" msgid="612715399099846281">"SIM 卡功能受限"</string>
     <string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"使用 <xliff:g id="PHONE_NUMBER">%2$s</xliff:g> 时，系统可能会屏蔽<xliff:g id="CARRIER_NAME">%1$s</xliff:g>通话和数据服务。"</string>
     <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"使用另一张 SIM 卡时，系统可能会屏蔽<xliff:g id="CARRIER_NAME">%1$s</xliff:g>通话和数据服务。"</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>
@@ -658,8 +692,8 @@
     <string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"PIN 码不一致"</string>
     <string name="change_pin_succeeded" msgid="2504705600693014403">"语音信箱 PIN 码已更新"</string>
     <string name="change_pin_system_error" msgid="7772788809875146873">"无法设置 PIN 码"</string>
-    <string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"数据网络漫游功能已停用"</string>
-    <string name="mobile_data_status_roaming_turned_on_subtext" msgid="5615757897768777865">"数据网络漫游功能已启用"</string>
+    <string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"数据漫游服务已关闭"</string>
+    <string name="mobile_data_status_roaming_turned_on_subtext" msgid="5615757897768777865">"数据漫游服务已开启"</string>
     <string name="mobile_data_status_roaming_without_plan_subtext" msgid="6536671968072284677">"目前处于漫游状态，需要添加数据流量套餐"</string>
     <string name="mobile_data_status_roaming_with_plan_subtext" msgid="2576177169108123095">"目前处于漫游状态，数据流量套餐已启用"</string>
     <string name="mobile_data_status_no_plan_subtext" msgid="170331026419263657">"无剩余移动数据流量"</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 97e9ca1..39a819e 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>
@@ -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/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 f8c9720..d02250e 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>
@@ -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 位數，因此無法更新。"</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>
@@ -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">"即時文字訊息功能可為以下類型的來電者提供協助：聽障人士、聽力受損者、語言障礙者，或需要語音服務以外的使用者。&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="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>\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..7e71068 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>
@@ -261,4 +285,18 @@
          slot. If true, telephony will always try to place the emergency call on the subscription
          associated with default data first, instead of using the default voice configuration.-->
     <bool name="config_gnss_supl_requires_default_data_for_emergency">false</bool>
+
+    <!-- Whether a device can have 5G connection in DSDS mode. It should be true by default, but
+         in some devices per modem limitation 5G network can't be connected if two or more SIMs
+         are active simultaneously. In that case, this value should be false. -->
+    <bool name="config_5g_connection_in_dsds_mode">true</bool>
+
+    <!-- Vibrator pattern to be used as the default for notifications
+         that specify DEFAULT_VIBRATE. -->
+    <integer-array name="config_defaultNotificationVibePattern">
+        <item>0</item>
+        <item>350</item>
+        <item>250</item>
+        <item>350</item>
+    </integer-array>
 </resources>
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..8218a84 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>
@@ -279,8 +259,8 @@
         <item name="android:statusBarColor">@android:color/transparent</item>
         <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="emergencyButtonBackgroundColor">#10ffffff</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/carrier_ss_string.xml b/res/xml/carrier_ss_string.xml
index 826f0ea..29de13a 100644
--- a/res/xml/carrier_ss_string.xml
+++ b/res/xml/carrier_ss_string.xml
@@ -21,7 +21,7 @@
 
      If developer need to define ussd command by specific carrier, developer can add new xml and
      xml is named carrier_ss_string_carrierId.xml. The carrierId is a number and is defined in
-     <a href="https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/master/assets/carrier_list.textpb">here</a>
+     <a href="https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/master/assets/latest_carrier_id/carrier_list.textpb">here</a>
      For example: carrier_ss_string_850.xml
 
      The tags define as below:
diff --git a/res/xml/carrier_ss_string_850.xml b/res/xml/carrier_ss_string_850.xml
index 86d5743..01eeee5 100644
--- a/res/xml/carrier_ss_string_850.xml
+++ b/res/xml/carrier_ss_string_850.xml
@@ -15,7 +15,7 @@
 -->
 <!-- This xml is the command's structure about supplementary service by ussd command for
      carrier id 850.
-     <a href="https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/master/assets/carrier_list.textpb">here</a>
+     <a href="https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/master/assets/latest_carrier_id/carrier_list.textpb">here</a>
      The introduction is same as carrier_ss_string.xml. @see carrier_ss_string_carrierId.xml
 -->
 
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-gu/strings.xml b/sip/res/values-gu/strings.xml
index aa32a85..9eb810b 100644
--- a/sip/res/values-gu/strings.xml
+++ b/sip/res/values-gu/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="sip_settings" msgid="7452587325305604702">"SIP સેટિંગ્સ"</string>
     <string name="sip_accounts" msgid="7297896885665783239">"SIP એકાઉન્ટ્સ"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"એકાઉન્ટ્સ"</string>
+    <string name="sip_accounts_title" msgid="3061686404598143943">"એકાઉન્ટ"</string>
     <string name="sip_receive_calls" msgid="3403644006618369349">"આવનારા કૉલ્સ પ્રાપ્ત કરો"</string>
     <string name="sip_receive_calls_summary" msgid="5306603671778761443">"બધુ બૅટરીની આવરદાનો ઉપયોગ કરે છે"</string>
     <string name="sip_call_options_title" msgid="5027066677561068192">"SIP કૉલિંગનો ઉપયોગ કરો"</string>
diff --git a/sip/res/values-in/strings.xml b/sip/res/values-in/strings.xml
index 535e5ac..709205c 100644
--- a/sip/res/values-in/strings.xml
+++ b/sip/res/values-in/strings.xml
@@ -40,7 +40,7 @@
     <string name="registration_status_registering" msgid="7986331597809521791">"Mendaftarkan..."</string>
     <string name="registration_status_still_trying" msgid="7178623685868766282">"Masih mencoba..."</string>
     <string name="registration_status_not_receiving" msgid="3873074208531938401">"Tidak menerima panggilan."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Pendaftaran akun terhenti karena tidak ada sambungan internet."</string>
+    <string name="registration_status_no_data" msgid="2987064560116584121">"Pendaftaran akun terhenti karena tidak ada koneksi internet."</string>
     <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Pendaftaran akun terhenti karena tidak ada sambungan Wi-Fi."</string>
     <string name="registration_status_not_running" msgid="6236403137652262659">"Pendaftaran akun gagal."</string>
     <string name="registration_status_done" msgid="6787397199273357721">"Menerima panggilan."</string>
@@ -71,7 +71,7 @@
     <string name="all_empty_alert" msgid="6085603517610199098">"Masukkan detail akun SIP baru."</string>
     <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> diwajibkan dan tidak boleh kosong."</string>
     <string name="not_a_valid_port" msgid="3664668836663491376">"Nomor port harus dalam rentang 1000 dan 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Untuk melakukan panggilan SIP, periksa sambungan internet terlebih dahulu."</string>
+    <string name="no_internet_available" msgid="161720645084325479">"Untuk melakukan panggilan SIP, periksa koneksi internet terlebih dahulu."</string>
     <string name="no_wifi_available" msgid="1179092018692306312">"Anda harus tersambung ke jaringan Wi-Fi untuk melakukan panggilan SIP (gunakan setelan Nirkabel &amp; Jaringan)."</string>
     <string name="no_voip" msgid="3366395789297981738">"Panggilan SIP tidak didukung"</string>
     <string name="sip_system_decide" msgid="197230378376326430">"Otomatis"</string>
diff --git a/sip/res/values-mk/strings.xml b/sip/res/values-mk/strings.xml
index b810af8..f6b568a 100644
--- a/sip/res/values-mk/strings.xml
+++ b/sip/res/values-mk/strings.xml
@@ -26,7 +26,7 @@
     <string name="sip_call_options_entry_1" msgid="4722647332760934261">"За сите повици кога е достапна мрежа на податоци"</string>
     <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Само за повици со SIP"</string>
     <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"За сите повици"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Додај сметка"</string>
+    <string name="add_sip_account" msgid="5754758646745144384">"Додајте сметка"</string>
     <string name="remove_sip_account" msgid="8272617403399636513">"Отстрани сметка"</string>
     <string name="sip_account_list" msgid="2596262496233721769">"Сметки за SIP"</string>
     <string name="saving_account" msgid="3390358043846687266">"Зачувување на сметката..."</string>
diff --git a/sip/res/values-pt-rPT/strings.xml b/sip/res/values-pt-rPT/strings.xml
index ae1b2ed..35aca3e 100644
--- a/sip/res/values-pt-rPT/strings.xml
+++ b/sip/res/values-pt-rPT/strings.xml
@@ -47,7 +47,7 @@
     <string name="registration_status_failed_try_later" msgid="7855389184910312091">"O registo da conta não teve êxito: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); tentaremos mais tarde"</string>
     <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"O registo da conta não teve êxito: palavra-passe ou nome de utilizador incorreto"</string>
     <string name="registration_status_server_unreachable" msgid="3832339558868965604">"O registo da conta não teve êxito: verifique o nome do servidor."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Esta conta está atualmente a ser utilizada pela aplicação <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
+    <string name="third_party_account_summary" msgid="5918779106950859167">"Esta conta está atualmente a ser utilizada pela app <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
     <string name="sip_edit_title" msgid="7438891546610820307">"Detalhes da conta SIP"</string>
     <string name="sip_edit_new_title" msgid="8394790068979636381">"Detalhes da conta SIP"</string>
     <string name="domain_address_title" msgid="8238078615181248579">"Servidor"</string>
diff --git a/sip/res/values-uz/strings.xml b/sip/res/values-uz/strings.xml
index e6d00e7..f951de2 100644
--- a/sip/res/values-uz/strings.xml
+++ b/sip/res/values-uz/strings.xml
@@ -26,7 +26,7 @@
     <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Tarmoq trafigi mavjud bo‘lganda barcha qo‘ng‘iroqlar uchun"</string>
     <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Faqat SIP chaqiruvlar uchun"</string>
     <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Barcha chaqiruvlar uchun"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Hisob qo‘shish"</string>
+    <string name="add_sip_account" msgid="5754758646745144384">"Hisob kiritish"</string>
     <string name="remove_sip_account" msgid="8272617403399636513">"Hisobni olib tashlash"</string>
     <string name="sip_account_list" msgid="2596262496233721769">"SIP hisoblari"</string>
     <string name="saving_account" msgid="3390358043846687266">"Hisob saqlanmoqda…"</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..b8e3250 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;
@@ -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..54acaad 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;
@@ -96,6 +97,7 @@
             "phone_account_settings_preference_screen";
 
     private static final String ENABLE_VIDEO_CALLING_KEY = "button_enable_video_calling";
+    private static final String BUTTON_VP_KEY = "button_voice_privacy_key";
 
     private Phone mPhone;
     private ImsManager mImsMgr;
@@ -227,9 +229,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 +250,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 +259,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 +277,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 +287,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 +364,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 =
@@ -401,6 +401,9 @@
                     if (!carrierConfig.getBoolean(
                             CarrierConfigManager.KEY_VOICE_PRIVACY_DISABLE_UI_BOOL)) {
                         addPreferencesFromResource(R.xml.cdma_call_privacy);
+                        CdmaVoicePrivacySwitchPreference buttonVoicePrivacy =
+                                (CdmaVoicePrivacySwitchPreference) findPreference(BUTTON_VP_KEY);
+                        buttonVoicePrivacy.setPhone(mPhone);
                     }
                 } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
                     if (mPhone.getIccCard() == null || !mPhone.getIccCard().getIccFdnAvailable()) {
@@ -477,8 +480,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 +502,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 +564,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 +595,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..866e481 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,10 @@
 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.ArraySet;
 import android.util.LocalLog;
 import android.util.Log;
 
@@ -57,14 +61,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;
@@ -77,11 +76,11 @@
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Set;
 
 /**
  * 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,14 +95,18 @@
     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.
     private CarrierServiceConnection[] mServiceConnection;
     // Whether we are bound to a service for each phone
     private boolean[] mServiceBound;
-    // Whether we have sent config change bcast for each phone id.
+    // Whether we have sent config change broadcast for each phone id.
     private boolean[] mHasSentConfigChange;
+    // Whether the broadcast was sent from EVENT_SYSTEM_UNLOCKED, to track rebroadcasts
+    private boolean[] mFromSystemUnlocked;
     // SubscriptionInfoUpdater
     private final SubscriptionInfoUpdater mSubscriptionInfoUpdater;
 
@@ -111,7 +114,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 +148,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 +188,62 @@
         @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) {
-                        // 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.
+                case EVENT_SYSTEM_UNLOCKED: {
+                    for (int i = 0; i < TelephonyManager.from(mContext).getActiveModemCount();
+                            ++i) {
+                        // When the user unlocks the device, send the broadcast again (with a
+                        // rebroadcast extra) if we have sent it before unlock. This will avoid
+                        // trying to load the carrier config when the SIM is still loading when the
+                        // unlock happens.
                         if (mHasSentConfigChange[i]) {
+                            logdWithLocalLog("System unlocked");
+                            mFromSystemUnlocked[i] = true;
                             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 +273,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 +302,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 +315,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 +331,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 +340,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 +356,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 +364,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 +380,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 +426,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 +439,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 +454,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 +469,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 +480,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 +502,9 @@
                 case EVENT_SUBSCRIPTION_INFO_UPDATED:
                     broadcastConfigChangedIntent(phoneId);
                     break;
+                case EVENT_MULTI_SIM_CONFIG_CHANGED:
+                    onMultiSimConfigChanged();
+                    break;
             }
         }
     }
@@ -525,18 +532,21 @@
         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];
+        mFromSystemUnlocked = 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 +568,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 +598,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 +622,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;
@@ -593,6 +631,8 @@
                         .createForSubscriptionId(subIds[0]);
                 simApplicationState = telMgr.getSimApplicationState();
             }
+            logd("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId
+                    + " simApplicationState " + simApplicationState);
             // Include subId/carrier id extra only if SIM records are loaded
             if (simApplicationState != TelephonyManager.SIM_STATE_UNKNOWN
                     && simApplicationState != TelephonyManager.SIM_STATE_NOT_READY) {
@@ -603,17 +643,25 @@
             }
         }
         intent.putExtra(CarrierConfigManager.EXTRA_SLOT_INDEX, phoneId);
-        log("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId);
-        ActivityManager.broadcastStickyIntent(intent, UserHandle.USER_ALL);
+        intent.putExtra(CarrierConfigManager.EXTRA_REBROADCAST_ON_UNLOCK,
+                mFromSystemUnlocked[phoneId]);
+        mContext.sendBroadcastAsUser(intent, UserHandle.ALL);
+        int[] subIds = SubscriptionManager.getSubId(phoneId);
+        if (subIds != null && subIds.length > 0) {
+            logd("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId + ", subId=" + subIds[0]);
+        } else {
+            logd("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId);
+        }
         mHasSentConfigChange[phoneId] = true;
+        mFromSystemUnlocked[phoneId] = false;
     }
 
     /** 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 +768,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 +802,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 +829,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 +855,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 +905,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 +948,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 +976,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 +1068,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 +1078,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 +1090,84 @@
 
     @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);
-        for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
-            pw.println("Phone Id = " + i);
-            // display default values in CarrierConfigManager
-            printConfig(CarrierConfigManager.getDefaultConfig(), pw,
-                    "Default Values from CarrierConfigManager");
-            pw.println("");
-            // display ConfigFromDefaultApp
-            printConfig(mConfigFromDefaultApp[i], pw, "mConfigFromDefaultApp");
-            pw.println("");
-            // display ConfigFromCarrierApp
-            printConfig(mConfigFromCarrierApp[i], pw, "mConfigFromCarrierApp");
-            pw.println("");
-            printConfig(mOverrideConfigs[i], pw, "mOverrideConfigs");
+        String requestingPackage = null;
+        int requestingPackageIndex = ArrayUtils.indexOf(args, DUMP_ARG_REQUESTING_PACKAGE);
+        if (requestingPackageIndex >= 0 && requestingPackageIndex < args.length - 1
+                && !TextUtils.isEmpty(args[requestingPackageIndex + 1])) {
+            requestingPackage = args[requestingPackageIndex + 1];
+            // 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);
         }
 
-        pw.println("CarrierConfigLoadingLog=");
-        mCarrierConfigLoadingLog.dump(fd, pw, args);
+        indentPW.println("CarrierConfigLoader: " + this);
+        for (int i = 0; i < TelephonyManager.from(mContext).getActiveModemCount(); i++) {
+            indentPW.println("Phone Id = " + i);
+            // display default values in CarrierConfigManager
+            printConfig(CarrierConfigManager.getDefaultConfig(), indentPW,
+                    "Default Values from CarrierConfigManager");
+            // display ConfigFromDefaultApp
+            printConfig(mConfigFromDefaultApp[i], indentPW, "mConfigFromDefaultApp");
+            // display ConfigFromCarrierApp
+            printConfig(mConfigFromCarrierApp[i], indentPW, "mConfigFromCarrierApp");
+            printConfig(mPersistentOverrideConfigs[i], indentPW, "mPersistentOverrideConfigs");
+            printConfig(mOverrideConfigs[i], indentPW, "mOverrideConfigs");
+        }
+
+        indentPW.println("CarrierConfigLoadingLog=");
+        mCarrierConfigLoadingLog.dump(fd, indentPW, args);
+
+        if (requestingPackage != null) {
+            logd("Including default and requesting package " + requestingPackage
+                    + " carrier services in dump");
+            indentPW.println("");
+            indentPW.println("Connected services");
+            dumpCarrierServiceIfBound(fd, indentPW, "Default config package",
+                    mPlatformCarrierConfigPackage, false /* considerCarrierPrivileges */);
+            dumpCarrierServiceIfBound(fd, indentPW, "Requesting package", requestingPackage,
+                    true /* considerCarrierPrivileges */);
+        }
     }
 
-    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 +1183,162 @@
                 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);
+    }
+
+    /**
+     * Searches for one or more appropriate {@link CarrierService} instances to dump based on the
+     * current connections.
+     *
+     * @param targetPkgName             the target package name to dump carrier services for
+     * @param considerCarrierPrivileges if true, allow a carrier service to be dumped if it shares
+     *                                  carrier privileges with {@code targetPkgName};
+     *                                  otherwise, only dump a carrier service if it is {@code
+     *                                  targetPkgName}
+     */
+    private void dumpCarrierServiceIfBound(FileDescriptor fd, IndentingPrintWriter indentPW,
+            String prefix, String targetPkgName, boolean considerCarrierPrivileges) {
+        // 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 + " : " + targetPkgName);
+        Set<String> dumpedPkgNames = new ArraySet<>(mServiceConnection.length);
+        for (CarrierServiceConnection connection : mServiceConnection) {
+            if (connection == null || !SubscriptionManager.isValidPhoneId(connection.phoneId)
+                    || TextUtils.isEmpty(connection.pkgName)) {
+                continue;
+            }
+            final String servicePkgName = connection.pkgName;
+            // Note: we intentionally ignore system components here because we should NOT match the
+            // shell caller that's typically used for bug reports via non-BugreportManager triggers.
+            final boolean exactPackageMatch = TextUtils.equals(targetPkgName, servicePkgName);
+            final boolean carrierPrivilegesMatch =
+                    considerCarrierPrivileges && hasCarrierPrivileges(targetPkgName,
+                            connection.phoneId);
+            if (!exactPackageMatch && !carrierPrivilegesMatch) continue;
+            // Make sure this service is actually alive before trying to dump it. 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. Pull it out as a reference so even if it gets set to
+            // null within the ServiceConnection during unbinding we can avoid an NPE.
+            final IBinder service = connection.service;
+            if (service == null || !service.isBinderAlive() || !service.pingBinder()) continue;
+            // We've got a live service. Last check is just to make sure we don't dump a package
+            // multiple times.
+            if (!dumpedPkgNames.add(servicePkgName)) continue;
+            if (!exactPackageMatch) {
+                logd(targetPkgName + " has carrier privileges on phoneId " + connection.phoneId
+                        + ", service provided by " + servicePkgName);
+                indentPW.increaseIndent();
+                indentPW.println("Proxy : " + servicePkgName);
+                indentPW.decreaseIndent();
+            }
+            // 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 do anything after.
+            indentPW.flush();
+            try {
+                logd("Dumping " + servicePkgName);
+                // We don't need to give the carrier service any args.
+                connection.service.dump(fd, null /* args */);
+                logd("Done with " + servicePkgName);
+            } catch (RemoteException e) {
+                logd("RemoteException from " + servicePkgName, e);
+                indentPW.increaseIndent();
+                indentPW.println("RemoteException");
+                indentPW.increaseIndent();
+                e.printStackTrace(indentPW);
+                indentPW.decreaseIndent();
+                indentPW.decreaseIndent();
+                // We won't retry this package again because now it's in dumpedPkgNames.
+            }
+            indentPW.println("");
+        }
+        if (dumpedPkgNames.isEmpty()) {
+            indentPW.increaseIndent();
+            indentPW.println("Not bound");
+            indentPW.decreaseIndent();
+            indentPW.println("");
+        }
+        indentPW.decreaseIndent();
+    }
+
+    private boolean hasCarrierPrivileges(String pkgName, int phoneId) {
+        int[] subIds = SubscriptionManager.getSubId(phoneId);
+        if (ArrayUtils.isEmpty(subIds)) {
+            return false;
+        }
+        return TelephonyManager.from(mContext).createForSubscriptionId(
+                subIds[0]).checkCarrierPrivilegesForPackage(pkgName)
+                == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
     }
 
     private class CarrierServiceConnection implements ServiceConnection {
-        int phoneId;
-        int eventId;
+        final int phoneId;
+        final String pkgName;
+        final 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 +1349,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 +1373,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/CdmaCallOptions.java b/src/com/android/phone/CdmaCallOptions.java
index acfa496..8513664 100644
--- a/src/com/android/phone/CdmaCallOptions.java
+++ b/src/com/android/phone/CdmaCallOptions.java
@@ -21,7 +21,6 @@
 import android.preference.Preference;
 import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
-import android.preference.SwitchPreference;
 import android.telephony.CarrierConfigManager;
 import android.view.MenuItem;
 
@@ -32,7 +31,7 @@
     private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
 
     private static final String BUTTON_VP_KEY = "button_voice_privacy_key";
-    private SwitchPreference mButtonVoicePrivacy;
+    private CdmaVoicePrivacySwitchPreference mButtonVoicePrivacy;
 
     @Override
     protected void onCreate(Bundle icicle) {
@@ -44,7 +43,8 @@
         subInfoHelper.setActionBarTitle(
                 getActionBar(), getResources(), R.string.labelCdmaMore_with_label);
 
-        mButtonVoicePrivacy = (SwitchPreference) findPreference(BUTTON_VP_KEY);
+        mButtonVoicePrivacy = (CdmaVoicePrivacySwitchPreference) findPreference(BUTTON_VP_KEY);
+        mButtonVoicePrivacy.setPhone(subInfoHelper.getPhone());
         PersistableBundle carrierConfig;
         if (subInfoHelper.hasSubId()) {
             carrierConfig = PhoneGlobals.getInstance().getCarrierConfigForSubId(
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/CdmaVoicePrivacySwitchPreference.java b/src/com/android/phone/CdmaVoicePrivacySwitchPreference.java
index b79a3f0..0192c2a 100644
--- a/src/com/android/phone/CdmaVoicePrivacySwitchPreference.java
+++ b/src/com/android/phone/CdmaVoicePrivacySwitchPreference.java
@@ -102,4 +102,8 @@
             phone.getEnhancedVoicePrivacy(obtainMessage(MESSAGE_GET_VP));
         }
     }
+
+    public void setPhone(Phone phone) {
+        this.phone = phone;
+    }
 }
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..591f435 100644
--- a/src/com/android/phone/EmergencyCallbackModeExitDialog.java
+++ b/src/com/android/phone/EmergencyCallbackModeExitDialog.java
@@ -35,6 +35,7 @@
 import android.os.IBinder;
 import android.os.Looper;
 import android.os.Message;
+import android.telephony.TelephonyManager;
 import android.util.Log;
 
 import com.android.internal.telephony.Phone;
@@ -68,6 +69,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 +102,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 +190,7 @@
      * Shows Emergency Callback Mode dialog and starts countdown timer
      */
     private void showEmergencyCallbackModeExitDialog() {
-        if (this.isDestroyed()) {
+        if (isDestroyed()) {
             Log.w(TAG, "Tried to show dialog, but activity was already finished");
             return;
         }
@@ -287,8 +301,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;
     }
@@ -311,7 +331,8 @@
             // Received exit Emergency Callback Mode notification close all dialogs
             if (intent.getAction().equals(
                     TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED)) {
-                if (intent.getBooleanExtra("phoneinECMState", false) == false) {
+                // Cancel if the sticky broadcast extra for whether or not we are in ECM is false.
+                if (!intent.getBooleanExtra(TelephonyManager.EXTRA_PHONE_IN_ECM_STATE, false)) {
                     if (mAlertDialog != null)
                         mAlertDialog.dismiss();
                     if (mProgressDialog != null)
diff --git a/src/com/android/phone/EmergencyCallbackModeService.java b/src/com/android/phone/EmergencyCallbackModeService.java
index 86f8fe6..464db6f 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);
@@ -198,7 +199,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();
@@ -209,14 +214,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..42bfb24 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -20,9 +20,11 @@
 
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
+import android.annotation.ColorInt;
 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 +33,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 +41,10 @@
 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 android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -68,15 +69,10 @@
 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;
+import com.android.telephony.Rlog;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -100,7 +96,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 {
 
@@ -155,6 +152,11 @@
     /** Size limit of emergency shortcut buttons container. **/
     private static final int SHORTCUT_SIZE_LIMIT = 3;
 
+    private static final float COLOR_DELTA = 1.0f / 16.0f;
+
+    /** Dial button color, from packages/apps/PhoneCommon/res/drawable-mdpi/fab_green.png **/
+    @ColorInt private static final int DIALER_GREEN = 0xff00c853;
+
     ResizingTextEditText mDigits;
     private View mDialButton;
     private View mDelete;
@@ -212,8 +214,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 +223,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 +257,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 +273,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 +293,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 +466,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 +495,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 +514,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 +538,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 +595,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 +610,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 +664,11 @@
     @Override
     protected void onStop() {
         super.onStop();
-        mColorExtractor.removeOnColorsChangedListener(this);
+
+        WallpaperManager wallpaperManager = getWallpaperManager();
+        if (wallpaperManager.isWallpaperSupported()) {
+            wallpaperManager.removeOnColorsChangedListener(this);
+        }
     }
 
     /**
@@ -741,28 +713,24 @@
         // 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;
+            try {
+                isEmergencyNumber = getSystemService(TelephonyManager.class)
+                        .isEmergencyNumber(mLastNumber);
+            } catch (IllegalStateException ise) {
+                isEmergencyNumber = false;
+            }
         }
 
         if (isEmergencyNumber) {
@@ -775,19 +743,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 +897,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 +1181,88 @@
 
     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 int getPrimaryColor(WallpaperColors colors) {
+        if (colors != null) {
+            // Android accessibility scanner
+            // (https://support.google.com/accessibility/android/answer/7158390)
+            // suggest small text and graphics have a contrast ratio greater than
+            // 4.5 with background color. The color generated from wallpaper may not
+            // follow this rule. Calculate a proper color here.
+            Color primary = colors.getPrimaryColor();
+            Color text;
+            if (mSupportsDarkText) {
+                text = Color.valueOf(Color.BLACK);
+            } else {
+                text = Color.valueOf(Color.WHITE);
+            }
+            Color dial = Color.valueOf(DIALER_GREEN);
+            // If current primary color can't follow the contrast ratio rule, make it
+            // deeper/lighter and try again.
+            while (!checkContrastRatio(primary, text)) {
+                primary = getNextColor(primary, mSupportsDarkText);
+            }
+            if (!mSupportsDarkText) {
+                while (!checkContrastRatio(primary, dial)) {
+                    primary = getNextColor(primary, mSupportsDarkText);
+                }
+            }
+            return primary.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;
+    }
+
+    private Color getNextColor(Color color, boolean darkText) {
+        float sign = darkText ? 1.f : -1.f;
+        float r = color.red() + sign * COLOR_DELTA;
+        float g = color.green() + sign * COLOR_DELTA;
+        float b = color.blue() + sign * COLOR_DELTA;
+        if (r < 0f) r = 0f;
+        if (g < 0f) g = 0f;
+        if (b < 0f) b = 0f;
+        if (r > 1f) r = 1f;
+        if (g > 1f) g = 1f;
+        if (b > 1f) b = 1f;
+        return Color.valueOf(r, g, b);
+    }
+
+    private boolean checkContrastRatio(Color color1, Color color2) {
+        float lum1 = color1.luminance();
+        float lum2 = color2.luminance();
+        double cr;
+        if (lum1 >= lum2) {
+            cr = (lum1 + 0.05) / (lum2 + 0.05);
+        } else {
+            cr = (lum2 + 0.05) / (lum1 + 0.05);
+        }
+
+        // Make cr greater than 5.0 instead of 4.5 to guarantee that transparent white
+        // text and graphics can have contrast ratio greather than 4.5 with background.
+        return cr > 5.0;
+    }
 }
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..fda0ea5 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,9 @@
         mPhone = mSubscriptionInfoHelper.getPhone();
 
         PersistableBundle b = null;
+        boolean supportCFB = true;
+        boolean supportCFNRc = true;
+        boolean supportCFNRy = true;
         if (mSubscriptionInfoHelper.hasSubId()) {
             b = PhoneGlobals.getInstance().getCarrierConfigForSubId(
                     mSubscriptionInfoHelper.getSubId());
@@ -73,6 +77,12 @@
                     CarrierConfigManager.KEY_CALL_FORWARDING_MAP_NON_NUMBER_TO_VOICEMAIL_BOOL);
             mCallForwardByUssd = b.getBoolean(
                     CarrierConfigManager.KEY_USE_CALL_FORWARDING_USSD_BOOL);
+            supportCFB = b.getBoolean(
+                    CarrierConfigManager.KEY_CALL_FORWARDING_WHEN_BUSY_SUPPORTED_BOOL);
+            supportCFNRc = b.getBoolean(
+                    CarrierConfigManager.KEY_CALL_FORWARDING_WHEN_UNREACHABLE_SUPPORTED_BOOL);
+            supportCFNRy = b.getBoolean(
+                    CarrierConfigManager.KEY_CALL_FORWARDING_WHEN_UNANSWERED_SUPPORTED_BOOL);
         }
 
         PreferenceScreen prefSet = getPreferenceScreen();
@@ -87,9 +97,9 @@
         mButtonCFNRc.setParentActivity(this, mButtonCFNRc.reason);
 
         mPreferences.add(mButtonCFU);
-        mPreferences.add(mButtonCFB);
-        mPreferences.add(mButtonCFNRy);
-        mPreferences.add(mButtonCFNRc);
+        layoutCallForwardItem(supportCFB, mButtonCFB, prefSet);
+        layoutCallForwardItem(supportCFNRy, mButtonCFNRy, prefSet);
+        layoutCallForwardItem(supportCFNRc, mButtonCFNRc, prefSet);
 
         if (mCallForwardByUssd) {
             //the call forwarding ussd command's behavior is similar to the call forwarding when
@@ -117,6 +127,15 @@
         }
     }
 
+    private void layoutCallForwardItem(boolean support, CallForwardEditPreference preference,
+            PreferenceScreen prefSet) {
+        if (support) {
+            mPreferences.add(preference);
+        } else {
+            prefSet.removePreference(preference);
+        }
+    }
+
     @Override
     public void onResume() {
         super.onResume();
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/IccNetworkDepersonalizationPanel.java b/src/com/android/phone/IccNetworkDepersonalizationPanel.java
index 8bd10a2..a26225e 100644
--- a/src/com/android/phone/IccNetworkDepersonalizationPanel.java
+++ b/src/com/android/phone/IccNetworkDepersonalizationPanel.java
@@ -23,6 +23,7 @@
 import android.os.Message;
 import android.os.PersistableBundle;
 import android.telephony.CarrierConfigManager;
+import android.telephony.TelephonyManager;
 import android.text.Editable;
 import android.text.Spannable;
 import android.text.TextUtils;
@@ -37,6 +38,7 @@
 import android.widget.TextView;
 
 import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.uicc.IccCardApplicationStatus.PersoSubState;
 
 /**
  * "SIM network unlock" PIN entry screen.
@@ -52,7 +54,8 @@
      * Tracks whether there is an instance of the network depersonalization dialog showing or not.
      * Ensures only a single instance of the dialog is visible.
      */
-    private static boolean sShowingDialog = false;
+    private static boolean [] sShowingDialog =
+            new boolean[TelephonyManager.getDefault().getSupportedModemCount()];
 
     //debug constants
     private static final boolean DBG = false;
@@ -61,29 +64,57 @@
     private static final int EVENT_ICC_NTWRK_DEPERSONALIZATION_RESULT = 100;
 
     private Phone mPhone;
+    private int mPersoSubtype;
+    private static IccNetworkDepersonalizationPanel [] sNdpPanel =
+            new IccNetworkDepersonalizationPanel[
+                    TelephonyManager.getDefault().getSupportedModemCount()];
 
     //UI elements
     private EditText     mPinEntry;
     private LinearLayout mEntryPanel;
     private LinearLayout mStatusPanel;
+    private TextView     mPersoSubtypeText;
+    private PersoSubState mPersoSubState;
     private TextView     mStatusText;
 
     private Button       mUnlockButton;
     private Button       mDismissButton;
 
+    enum statusType {
+        ENTRY,
+        IN_PROGRESS,
+        ERROR,
+        SUCCESS
+    }
+
     /**
      * Shows the network depersonalization dialog, but only if it is not already visible.
      */
-    public static void showDialog(Phone phone) {
-        if (sShowingDialog) {
+    public static void showDialog(Phone phone, int subType) {
+        int phoneId = phone == null ? 0: phone.getPhoneId();
+        if (phoneId >= sShowingDialog.length) {
+            Log.e(TAG, "[IccNetworkDepersonalizationPanel] showDialog; invalid phoneId" + phoneId);
+            return;
+        }
+        if (sShowingDialog[phoneId]) {
             Log.i(TAG, "[IccNetworkDepersonalizationPanel] - showDialog; skipped already shown.");
             return;
         }
         Log.i(TAG, "[IccNetworkDepersonalizationPanel] - showDialog; showing dialog.");
-        sShowingDialog = true;
-        IccNetworkDepersonalizationPanel ndpPanel =
-                new IccNetworkDepersonalizationPanel(PhoneGlobals.getInstance(), phone);
-        ndpPanel.show();
+        sShowingDialog[phoneId] = true;
+        sNdpPanel[phoneId] = new IccNetworkDepersonalizationPanel(PhoneGlobals.getInstance(),
+                phone, subType);
+        sNdpPanel[phoneId].show();
+    }
+
+    public static void dialogDismiss(int phoneId) {
+        if (phoneId >= sShowingDialog.length) {
+            Log.e(TAG, "[IccNetworkDepersonalizationPanel] - dismiss; invalid phoneId " + phoneId);
+            return;
+        }
+        if (sNdpPanel[phoneId] != null && sShowingDialog[phoneId]) {
+            sNdpPanel[phoneId].dismiss();
+        }
     }
 
     //private textwatcher to control text entry.
@@ -109,37 +140,41 @@
                 AsyncResult res = (AsyncResult) msg.obj;
                 if (res.exception != null) {
                     if (DBG) log("network depersonalization request failure.");
-                    indicateError();
+                    displayStatus(statusType.ERROR.name());
                     postDelayed(new Runnable() {
-                                    public void run() {
-                                        hideAlert();
-                                        mPinEntry.getText().clear();
-                                        mPinEntry.requestFocus();
-                                    }
-                                }, 3000);
+                        public void run() {
+                            hideAlert();
+                            mPinEntry.getText().clear();
+                            mPinEntry.requestFocus();
+                        }
+                    }, 3000);
                 } else {
                     if (DBG) log("network depersonalization success.");
-                    indicateSuccess();
+                    displayStatus(statusType.SUCCESS.name());
                     postDelayed(new Runnable() {
-                                    public void run() {
-                                        dismiss();
-                                    }
-                                }, 3000);
+                        public void run() {
+                            dismiss();
+                        }
+                    }, 3000);
                 }
             }
         }
     };
 
+
     //constructor
     public IccNetworkDepersonalizationPanel(Context context) {
         super(context);
         mPhone = PhoneGlobals.getPhone();
+        mPersoSubtype = PersoSubState.PERSOSUBSTATE_SIM_NETWORK.ordinal();
     }
 
     //constructor
-    public IccNetworkDepersonalizationPanel(Context context, Phone phone) {
+    public IccNetworkDepersonalizationPanel(Context context, Phone phone,
+            int subtype) {
         super(context);
         mPhone = phone == null ? PhoneGlobals.getPhone() : phone;
+        mPersoSubtype = subtype;
     }
 
     @Override
@@ -158,6 +193,8 @@
         span.setSpan(mPinEntryWatcher, 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
 
         mEntryPanel = (LinearLayout) findViewById(R.id.entry_panel);
+        mPersoSubtypeText = (TextView) findViewById(R.id.perso_subtype_text);
+        displayStatus(statusType.ENTRY.name());
 
         mUnlockButton = (Button) findViewById(R.id.ndp_unlock);
         mUnlockButton.setOnClickListener(mUnlockListener);
@@ -190,7 +227,12 @@
     public void onStop() {
         super.onStop();
         Log.i(TAG, "[IccNetworkDepersonalizationPanel] - showDialog; hiding dialog.");
-        sShowingDialog = false;
+        int phoneId = mPhone == null ? 0 : mPhone.getPhoneId();
+        if (phoneId >= sShowingDialog.length) {
+            Log.e(TAG, "[IccNetworkDepersonalizationPanel] - onStop; invalid phoneId " + phoneId);
+            return;
+        }
+        sShowingDialog[phoneId] = false;
     }
 
     //Mirrors IccPinUnlockPanel.onKeyDown().
@@ -210,29 +252,45 @@
                 return;
             }
 
-            if (DBG) log("requesting network depersonalization with code " + pin);
-            mPhone.getIccCard().supplyNetworkDepersonalization(pin,
-                    Message.obtain(mHandler, EVENT_ICC_NTWRK_DEPERSONALIZATION_RESULT));
-            indicateBusy();
+            log("Requesting De-Personalization for subtype " + mPersoSubtype);
+
+            try {
+                mPhone.getIccCard().supplySimDepersonalization(mPersoSubState,pin,
+                        Message.obtain(mHandler, EVENT_ICC_NTWRK_DEPERSONALIZATION_RESULT));
+            } catch (NullPointerException ex) {
+                log("NullPointerException @supplySimDepersonalization" + ex);
+            }
+            displayStatus(statusType.IN_PROGRESS.name());
         }
     };
 
-    private void indicateBusy() {
-        mStatusText.setText(R.string.requesting_unlock);
-        mEntryPanel.setVisibility(View.GONE);
-        mStatusPanel.setVisibility(View.VISIBLE);
-    }
+    private void displayStatus(String type) {
+        int label = 0;
 
-    private void indicateError() {
-        mStatusText.setText(R.string.unlock_failed);
-        mEntryPanel.setVisibility(View.GONE);
-        mStatusPanel.setVisibility(View.VISIBLE);
-    }
+        mPersoSubState = PersoSubState.values()[mPersoSubtype];
+        log("displayStatus mPersoSubState: " +mPersoSubState.name() +"type: " +type);
 
-    private void indicateSuccess() {
-        mStatusText.setText(R.string.unlock_success);
-        mEntryPanel.setVisibility(View.GONE);
-        mStatusPanel.setVisibility(View.VISIBLE);
+        label = getContext().getResources().getIdentifier(mPersoSubState.name()
+                + "_" + type, "string", "android");
+
+        if (label == 0) {
+            log ("Unable to get the PersoSubType string");
+            return;
+        }
+
+        if(!PersoSubState.isPersoLocked(mPersoSubState)) {
+            log ("Unsupported Perso Subtype :" + mPersoSubState.name());
+            return;
+        }
+
+        if (type == statusType.ENTRY.name()) {
+            String displayText = getContext().getString(label);
+            mPersoSubtypeText.setText(displayText);
+        } else {
+            mStatusText.setText(label);
+            mEntryPanel.setVisibility(View.GONE);
+            mStatusPanel.setVisibility(View.VISIBLE);
+        }
     }
 
     private void hideAlert() {
@@ -241,13 +299,13 @@
     }
 
     View.OnClickListener mDismissListener = new View.OnClickListener() {
-            public void onClick(View v) {
-                if (DBG) log("mDismissListener: skipping depersonalization...");
-                dismiss();
-            }
-        };
+        public void onClick(View v) {
+            if (DBG) log("mDismissListener: skipping depersonalization...");
+            dismiss();
+        }
+    };
 
     private void log(String msg) {
-        Log.v(TAG, "[IccNetworkDepersonalizationPanel] " + msg);
+        Log.d(TAG, "[IccNetworkDepersonalizationPanel] " + msg);
     }
 }
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..c2dece5 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);
     }
 
@@ -358,7 +355,8 @@
             }
 
             PendingIntent pendingIntent =
-                    PendingIntent.getActivity(mContext, subId /* requestCode */, intent, 0);
+                    PendingIntent.getActivity(mContext, subId /* requestCode */, intent,
+                            PendingIntent.FLAG_IMMUTABLE);
 
             Resources res = mContext.getResources();
             PersistableBundle carrierConfig = PhoneGlobals.getInstance().getCarrierConfigForSubId(
@@ -373,20 +371,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 +391,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 +408,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 +478,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 +548,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);
@@ -547,23 +557,22 @@
             SubscriptionInfoHelper.addExtrasToIntent(
                     intent, mSubscriptionManager.getActiveSubscriptionInfo(subId));
             builder.setContentIntent(PendingIntent.getActivity(mContext, subId /* requestCode */,
-                    intent, 0));
-            mNotificationManager.notifyAsUser(
+                    intent, PendingIntent.FLAG_IMMUTABLE));
+            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);
             }
         }
     }
@@ -590,7 +599,8 @@
         // "Mobile network settings" screen / dialog
         Intent intent = new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS);
         intent.putExtra(Settings.EXTRA_SUB_ID, subId);
-        PendingIntent contentIntent = PendingIntent.getActivity(mContext, subId, intent, 0);
+        PendingIntent contentIntent = PendingIntent.getActivity(
+                mContext, subId, intent, PendingIntent.FLAG_IMMUTABLE);
 
         CharSequence contentTitle = mContext.getText(roamingOn
                 ? R.string.roaming_on_notification_title
@@ -604,12 +614,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 +654,7 @@
      */
     /* package */ void hideDataRoamingNotification() {
         if (DBG) log("hideDataRoamingNotification()...");
-        mNotificationManager.cancel(DATA_ROAMING_NOTIFICATION);
+        cancelAsUser(null, DATA_ROAMING_NOTIFICATION, UserHandle.ALL);
     }
 
     /**
@@ -637,7 +674,7 @@
         }
         // Navigate to "Network Selection Settings" which list all subscriptions.
         PendingIntent contentIntent = PendingIntent.getActivity(mContext, 0,
-                new Intent(ACTION_MOBILE_NETWORK_LIST), 0);
+                new Intent(ACTION_MOBILE_NETWORK_LIST), PendingIntent.FLAG_IMMUTABLE);
         // Display phone number from the other sub
         String line1Num = null;
         SubscriptionManager subMgr = (SubscriptionManager) mContext.getSystemService(
@@ -661,12 +698,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 +717,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 +738,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 +764,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 +774,10 @@
         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);
-        builder.setContentIntent(PendingIntent.getActivity(mContext, 0, intent, 0));
-        mNotificationManager.notifyAsUser(
+        intent.putExtra(Settings.EXTRA_SUB_ID, subId);
+        builder.setContentIntent(
+                PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_IMMUTABLE));
+        notifyAsUser(
                 Integer.toString(subId) /* tag */,
                 SELECTED_OPERATOR_FAIL_NOTIFICATION,
                 builder.build(),
@@ -752,7 +790,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..8f987b7 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);
 
@@ -202,6 +205,16 @@
 
     private final SettingsObserver mSettingsObserver;
 
+    private static class EventSimStateChangedBag {
+        final int mPhoneId;
+        final String mIccStatus;
+
+        EventSimStateChangedBag(int phoneId, String iccStatus) {
+            mPhoneId = phoneId;
+            mIccStatus = iccStatus;
+        }
+    }
+
     Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -222,7 +235,8 @@
                         // they enter a valid SIM network PIN.
                         Log.i(LOG_TAG, "show sim depersonal panel");
                         Phone phone = (Phone) ((AsyncResult) msg.obj).userObj;
-                        IccNetworkDepersonalizationPanel.showDialog(phone);
+                        int subType = (Integer)((AsyncResult)msg.obj).result;
+                        IccNetworkDepersonalizationPanel.showDialog(phone, subType);
                     }
                     break;
 
@@ -250,19 +264,24 @@
                     // Marks the event where the SIM goes into ready state.
                     // Right now, this is only used for the PUK-unlocking
                     // process.
-                    if (msg.obj.equals(IccCardConstants.INTENT_VALUE_ICC_READY)
-                            || msg.obj.equals(IccCardConstants.INTENT_VALUE_ICC_LOADED)) {
+                    EventSimStateChangedBag bag = (EventSimStateChangedBag)msg.obj;
+                    if (IccCardConstants.INTENT_VALUE_ICC_READY.equals(bag.mIccStatus)
+                            || IccCardConstants.INTENT_VALUE_ICC_LOADED.equals(bag.mIccStatus)) {
                         // when the right event is triggered and there
                         // are UI objects in the foreground, we close
                         // them to display the lock panel.
                         if (mPUKEntryActivity != null) {
+                            Log.i(LOG_TAG, "Dismiss puk entry activity");
                             mPUKEntryActivity.finish();
                             mPUKEntryActivity = null;
                         }
                         if (mPUKEntryProgressDialog != null) {
+                            Log.i(LOG_TAG, "Dismiss puk progress dialog");
                             mPUKEntryProgressDialog.dismiss();
                             mPUKEntryProgressDialog = null;
                         }
+                        Log.i(LOG_TAG, "Dismissing depersonal panel");
+                        IccNetworkDepersonalizationPanel.dialogDismiss(bag.mPhoneId);
                     }
                     break;
 
@@ -274,7 +293,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 +321,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 +338,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 +380,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 +388,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 +428,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 +450,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 +479,10 @@
         return PhoneFactory.getPhone(SubscriptionManager.getPhoneId(subId));
     }
 
+    public ImsResolver getImsResolver() {
+        return mImsResolver;
+    }
+
     /* package */ CallManager getCallManager() {
         return mCM;
     }
@@ -454,7 +492,8 @@
     }
 
     public PersistableBundle getCarrierConfigForSubId(int subId) {
-        return configLoader.getConfigForSubId(subId, getOpPackageName());
+        return configLoader.getConfigForSubIdWithFeature(subId, getOpPackageName(),
+                getAttributionTag());
     }
 
     private void registerSettingsObserver() {
@@ -491,6 +530,7 @@
      * or SIM READYing process is over.
      */
     void setPukEntryActivity(Activity activity) {
+        Log.i(LOG_TAG, "setPukEntryActivity - set to " + (activity == null ? "null" : "activity"));
         mPUKEntryActivity = activity;
     }
 
@@ -508,22 +548,11 @@
      * READYing process
      */
     void setPukEntryProgressDialog(ProgressDialog dialog) {
+        Log.i(LOG_TAG, "setPukEntryProgressDialog - set to "
+                + (dialog == null ? "null" : "activity"));
         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 +584,9 @@
                 maybeTurnCellOn(context, isAirplaneNewlyOn);
                 break;
         }
+        for (Phone phone : PhoneFactory.getPhones()) {
+            phone.getServiceStateTracker().onAirplaneModeChanged(isAirplaneNewlyOn);
+        }
     }
 
     /*
@@ -571,7 +603,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 +614,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 +626,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");
@@ -635,14 +669,9 @@
                     PhoneUtils.unregisterIccStatus(mHandler, phoneId);
                     PhoneUtils.registerIccStatus(mHandler, EVENT_SIM_NETWORK_LOCKED, phoneId);
                 }
-                if (mPUKEntryActivity != null) {
-                    // if an attempt to un-PUK-lock the device was made, while we're
-                    // receiving this state change notification, notify the handler.
-                    // NOTE: This is ONLY triggered if an attempt to un-PUK-lock has
-                    // been attempted.
-                    mHandler.sendMessage(mHandler.obtainMessage(EVENT_SIM_STATE_CHANGED,
-                            intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE)));
-                }
+                String iccStatus = intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE);
+                mHandler.sendMessage(mHandler.obtainMessage(EVENT_SIM_STATE_CHANGED,
+                        new EventSimStateChangedBag(phoneId, iccStatus)));
             } else if (action.equals(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED)) {
                 String newPhone = intent.getStringExtra(PhoneConstants.PHONE_NAME_KEY);
                 Log.d(LOG_TAG, "Radio technology switched. Now " + newPhone + " is active.");
@@ -657,7 +686,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 +733,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 +922,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 768e868..7ed7aec 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,7 +108,9 @@
 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;
@@ -111,26 +118,25 @@
 import android.util.EventLog;
 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;
@@ -142,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;
@@ -161,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;
@@ -168,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;
@@ -181,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.
@@ -258,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;
@@ -267,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;
@@ -283,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_";
@@ -797,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;
@@ -856,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");
@@ -874,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;
 
@@ -1081,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);
@@ -1098,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;
@@ -1108,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) {
@@ -1173,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);
@@ -1181,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;
@@ -1339,10 +1650,10 @@
     }
 
     /** Private constructor; @see init() */
-    @VisibleForTesting
-    /* package */ PhoneInterfaceManager(PhoneGlobals app) {
+    private 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();
@@ -1351,6 +1662,7 @@
                 PreferenceManager.getDefaultSharedPreferences(mApp);
         mNetworkScanRequestTracker = new NetworkScanRequestTracker();
         mPhoneConfigurationManager = PhoneConfigurationManager.getInstance();
+        mNotifyUserActivity = new AtomicBoolean(false);
 
         publish();
     }
@@ -1363,7 +1675,10 @@
     private void publish() {
         if (DBG) log("publish: " + this);
 
-        ServiceManager.addService("phone", this);
+        TelephonyFrameworkInitializer
+                .getTelephonyServiceManager()
+                .getTelephonyServiceRegisterer()
+                .register(this);
     }
 
     private Phone getPhoneFromRequest(MainThreadRequest request) {
@@ -1404,6 +1719,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);
     }
@@ -1445,7 +1770,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;
         }
@@ -1480,29 +1805,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();
 
@@ -1516,11 +1828,6 @@
         }
     }
 
-    /** {@hide} */
-    public int[] supplyPukReportResult(String puk, String pin) {
-        return supplyPukReportResultForSubscriber(getDefaultSubscription(), puk, pin);
-    }
-
     public int[] supplyPukReportResultForSubscriber(int subId, String puk, String pin) {
         enforceModifyPermission();
 
@@ -1653,15 +1960,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;
         }
 
@@ -1728,6 +2050,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.
@@ -1947,7 +2270,7 @@
     }
 
     @Override
-    public Bundle getCellLocation(String callingPackage) {
+    public CellIdentity getCellLocation(String callingPackage, String callingFeatureId) {
         mApp.getSystemService(AppOpsManager.class)
                 .checkPackage(Binder.getCallingUid(), callingPackage);
 
@@ -1955,6 +2278,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("getCellLocation")
@@ -1965,18 +2289,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);
         }
@@ -1993,28 +2315,15 @@
                 phoneId = SubscriptionManager.DEFAULT_PHONE_INDEX;
             }
             final int subId = mSubscriptionController.getSubIdUsingPhoneId(phoneId);
-            // 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())) {
-                return "";
-            }
             Phone phone = PhoneFactory.getPhone(phoneId);
-            if (phone != null) {
-                ServiceStateTracker sst = phone.getServiceStateTracker();
-                EmergencyNumberTracker emergencyNumberTracker = phone.getEmergencyNumberTracker();
-                if (sst != null) {
-                    LocaleTracker lt = sst.getLocaleTracker();
-                    if (lt != null) {
-                        if (!TextUtils.isEmpty(lt.getCurrentCountry())) {
-                            return lt.getCurrentCountry();
-                        } else if (emergencyNumberTracker != null) {
-                            return emergencyNumberTracker.getEmergencyCountryIso();
-                        }
-                    }
-                }
-            }
-            return "";
+            if (phone == null) return "";
+            ServiceStateTracker sst = phone.getServiceStateTracker();
+            if (sst == null) return "";
+            LocaleTracker lt = sst.getLocaleTracker();
+            if (lt == null) return "";
+            if (!TextUtils.isEmpty(lt.getCurrentCountry())) return lt.getCurrentCountry();
+            EmergencyNumberTracker ent = phone.getEmergencyNumberTracker();
+            return (ent == null) ? "" : ent.getEmergencyCountryIso();
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -2072,7 +2381,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="
@@ -2083,21 +2392,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>();
@@ -2121,7 +2431,7 @@
     }
 
     @Override
-    public List<CellInfo> getAllCellInfo(String callingPackage) {
+    public List<CellInfo> getAllCellInfo(String callingPackage, String callingFeatureId) {
         mApp.getSystemService(AppOpsManager.class)
                 .checkPackage(Binder.getCallingUid(), callingPackage);
 
@@ -2129,6 +2439,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("getAllCellInfo")
@@ -2164,20 +2475,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);
 
@@ -2185,6 +2497,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("requestCellInfoUpdate")
@@ -2232,14 +2545,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;
         }
 
@@ -2263,7 +2576,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;
@@ -2271,7 +2584,7 @@
 
         int subId = phone.getSubId();
         if (!TelephonyPermissions.checkCallingOrSelfReadDeviceIdentifiers(mApp, subId,
-                callingPackage, "getMeidForSlot")) {
+                callingPackage, callingFeatureId, "getMeidForSlot")) {
             return null;
         }
 
@@ -2295,14 +2608,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;
         }
 
@@ -2390,6 +2705,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
@@ -2398,9 +2729,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) {
@@ -2447,14 +2777,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;
         }
 
@@ -2477,14 +2810,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;
         }
 
@@ -2505,14 +2841,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;
         }
 
@@ -2613,7 +2952,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 {
@@ -2628,7 +2968,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");
         }
@@ -2646,10 +2987,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;
         }
 
@@ -2716,14 +3059,15 @@
     }
 
     @Override
-    public void sendVisualVoicemailSmsForSubscriber(String callingPackage, int subId,
-            String number, int port, String text, PendingIntent sentIntent) {
+    public void sendVisualVoicemailSmsForSubscriber(String callingPackage,
+            String callingAttributionTag, int subId, String number, int port, String text,
+            PendingIntent sentIntent) {
         mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
         enforceVisualVoicemailPackage(callingPackage, subId);
         enforceSendSmsPermission();
         SmsController smsController = PhoneFactory.getSmsController();
-        smsController.sendVisualVoicemailSmsForSubscriber(callingPackage, subId, number, port, text,
-                sentIntent);
+        smsController.sendVisualVoicemailSmsForSubscriber(callingPackage, callingAttributionTag,
+                subId, number, port, text, sentIntent);
     }
 
     /**
@@ -2761,7 +3105,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);
@@ -2812,9 +3156,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();
@@ -2854,10 +3200,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");
         }
 
@@ -2871,11 +3217,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
@@ -2894,73 +3247,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
@@ -2971,10 +3432,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 {
@@ -2990,19 +3451,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);
         }
@@ -3017,19 +3527,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);
         }
@@ -3043,19 +3561,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);
         }
@@ -3069,19 +3596,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);
         }
@@ -3096,6 +3632,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);
         }
@@ -3110,19 +3648,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);
         }
@@ -3137,6 +3684,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);
         }
@@ -3150,6 +3699,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);
         }
@@ -3164,6 +3715,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);
         }
@@ -3176,21 +3729,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);
         }
@@ -3201,9 +3762,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);
         }
@@ -3220,7 +3787,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
@@ -3230,6 +3797,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) {
@@ -3237,18 +3889,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;
             }
 
@@ -3279,15 +3924,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. ");
                 }
             }
 
@@ -3306,16 +3952,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;
             }
 
@@ -3341,8 +3978,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.");
                 }
             }
 
@@ -3423,10 +4061,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(
@@ -3454,6 +4089,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)) {
@@ -3470,7 +4128,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;
@@ -3495,7 +4153,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;
@@ -3521,7 +4179,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;
@@ -3547,7 +4205,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;
@@ -3556,10 +4214,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;
     }
@@ -3576,10 +4235,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;
         }
 
@@ -3600,17 +4264,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;
         }
 
@@ -3631,9 +4298,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;
         }
 
@@ -3687,14 +4356,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;
         }
 
@@ -4018,9 +4690,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;
         }
 
@@ -4036,7 +4709,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 {
@@ -4044,6 +4717,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(
@@ -4192,10 +4907,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];
         }
 
@@ -4208,6 +4924,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.
      */
@@ -4216,12 +4953,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);
         }
@@ -4236,12 +4972,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);
         }
@@ -4258,12 +4993,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);
         }
@@ -4280,12 +5014,27 @@
 
         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);
+        }
+    }
+
+    /**
+     * Unregister a previously registered IImsServiceFeatureCallback associated with an ImsFeature.
+     */
+    public void unregisterImsFeatureCallback(int slotId, int featureType,
+            IImsServiceFeatureCallback callback) {
+        enforceModifyPermission();
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            if (mImsResolver == null) return;
+            mImsResolver.unregisterImsFeatureCallback(slotId, featureType, callback);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4300,12 +5049,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);
         }
@@ -4320,12 +5068,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);
         }
@@ -4334,61 +5081,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();
 
@@ -4409,12 +5199,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 {
@@ -4456,18 +5245,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")
@@ -4491,6 +5312,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
@@ -4501,13 +5391,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")
@@ -4588,10 +5479,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;
         }
 
@@ -4630,7 +5521,6 @@
 
     /**
      * Set the preferred network type.
-     * Used for device configuration by some CDMA operators.
      *
      * @param networkType the preferred network type, defined in RILConstants.java.
      * @return true on success; false on any failure.
@@ -4642,14 +5532,12 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            if (DBG) log("setPreferredNetworkType: subId " + subId + " type " + networkType);
+            Settings.Global.putInt(mApp.getContentResolver(),
+                    Settings.Global.PREFERRED_NETWORK_MODE + subId, 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;
         } finally {
             Binder.restoreCallingIdentity(identity);
@@ -4657,6 +5545,49 @@
     }
 
     /**
+     * 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");
+
+        SubscriptionManager.setSubscriptionProperty(subId,
+                SubscriptionManager.ALLOWED_NETWORK_TYPES,
+                String.valueOf(allowedNetworkTypes));
+
+        int preferredNetworkMode = Settings.Global.getInt(mApp.getContentResolver(),
+                Settings.Global.PREFERRED_NETWORK_MODE + subId,
+                RILConstants.PREFERRED_NETWORK_MODE);
+        return setPreferredNetworkType(subId, preferredNetworkMode);
+    }
+
+    /**
      * Check whether DUN APN is required for tethering with subId.
      *
      * @param subId the id of the subscription to require tethering.
@@ -4664,7 +5595,7 @@
      * @hide
      */
     @Override
-    public boolean getTetherApnRequiredForSubscriber(int subId) {
+    public boolean isTetheringApnRequiredForSubscriber(int subId) {
         enforceModifyPermission();
         final long identity = Binder.clearCallingIdentity();
         final Phone phone = getPhone(subId);
@@ -4707,6 +5638,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.
@@ -4760,24 +5719,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 {
@@ -4797,14 +5747,13 @@
         }
     }
 
-    private int getCarrierPrivilegeStatusFromCarrierConfigRules(int privilegeFromSim,
+    private int getCarrierPrivilegeStatusFromCarrierConfigRules(int privilegeFromSim, int uid,
             Phone phone) {
         //load access rules from carrier configs, and check those as well: b/139133814
         SubscriptionController subController = SubscriptionController.getInstance();
         if (privilegeFromSim == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS
                 || subController == null) return privilegeFromSim;
 
-        int uid = Binder.getCallingUid();
         PackageManager pkgMgr = phone.getContext().getPackageManager();
         String[] packages = pkgMgr.getPackagesForUid(uid);
 
@@ -4858,25 +5807,26 @@
 
         return getCarrierPrivilegeStatusFromCarrierConfigRules(
             card.getCarrierPrivilegeStatusForCurrentTransaction(
-                phone.getContext().getPackageManager()), phone);
+                phone.getContext().getPackageManager()), Binder.getCallingUid(), phone);
     }
 
     @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), uid, phone);
     }
 
     @Override
@@ -4927,7 +5877,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);
@@ -4948,7 +5898,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);
@@ -4965,9 +5915,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;
     }
@@ -4990,7 +5948,7 @@
     @Override
     public boolean setLine1NumberForDisplayForSubscriber(int subId, String alphaTag,
             String number) {
-        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(
+        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(mApp,
                 subId, "setLine1NumberForDisplayForSubscriber");
 
         final long identity = Binder.clearCallingIdentity();
@@ -5003,7 +5961,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);
             }
 
@@ -5040,10 +5998,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;
         }
@@ -5067,9 +6026,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;
         }
 
@@ -5087,12 +6047,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;
         }
 
@@ -5126,7 +6087,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)) {
@@ -5160,7 +6121,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;
@@ -5170,8 +6131,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 {
@@ -5180,7 +6141,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;
@@ -5197,7 +6158,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) {
@@ -5214,7 +6176,7 @@
 
     @Override
     public boolean setOperatorBrandOverride(int subId, String brand) {
-        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(
+        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(mApp,
                 subId, "setOperatorBrandOverride");
 
         final long identity = Binder.clearCallingIdentity();
@@ -5230,7 +6192,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 {
@@ -5321,10 +6284,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;
         }
 
@@ -5345,9 +6308,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;
         }
 
@@ -5363,9 +6328,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;
         }
 
@@ -5382,7 +6347,7 @@
 
     @Override
     public boolean isTtyModeSupported() {
-        TelecomManager telecomManager = TelecomManager.from(mApp);
+        TelecomManager telecomManager = mApp.getSystemService(TelecomManager.class);
         return telecomManager.isTtySupported();
     }
 
@@ -5440,6 +6405,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.
@@ -5448,14 +6419,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;
         }
 
@@ -5493,6 +6464,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 {
@@ -5560,7 +6546,7 @@
 
     @Override
     public void factoryReset(int subId) {
-        enforceConnectivityInternalPermission();
+        enforceSettingsPermission();
         if (mUserManager.hasUserRestriction(UserManager.DISALLOW_NETWORK_RESET)) {
             return;
         }
@@ -5581,6 +6567,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,
@@ -5610,7 +6601,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;
@@ -5634,7 +6625,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();
@@ -5648,18 +6639,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
@@ -5676,38 +6669,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);
         }
@@ -5722,13 +6684,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));
     }
 
@@ -5737,9 +6700,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;
         }
 
@@ -5747,6 +6711,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("getServiceStateForSubscriber")
@@ -5758,6 +6723,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("getServiceStateForSubscriber")
@@ -5782,8 +6748,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);
         }
@@ -5828,8 +6794,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");
@@ -5885,8 +6851,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");
@@ -6226,37 +7192,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);
     }
 
     /**
@@ -6286,9 +7227,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);
@@ -6399,14 +7341,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;
             }
 
@@ -6480,7 +7423,8 @@
 
     @Override
     public boolean isManualNetworkSelectionAllowed(int subId) {
-        TelephonyPermissions.enforeceCallingOrSelfReadPhoneStatePermissionOrCarrierPrivilege(
+        TelephonyPermissions
+                .enforeceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
                 mApp, subId, "isManualNetworkSelectionAllowed");
 
         boolean isAllowed = true;
@@ -6578,6 +7522,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:
@@ -6634,23 +7584,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.
      *
@@ -6686,8 +7619,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);
     }
 
     /**
@@ -6698,8 +7630,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;
@@ -6710,11 +7641,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
@@ -6754,9 +7686,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;
         }
 
@@ -6770,7 +7704,8 @@
 
     @Override
     public int getCdmaRoamingMode(int subId) {
-        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
+        TelephonyPermissions
+                .enforeceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
                 mApp, subId, "getCdmaRoamingMode");
 
         final long identity = Binder.clearCallingIdentity();
@@ -6807,80 +7742,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();
@@ -6972,6 +7839,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);
@@ -7015,12 +7950,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.");
         }
 
@@ -7052,9 +7989,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;
         }
 
@@ -7123,14 +8061,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();
@@ -7181,6 +8148,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.
      *
@@ -7188,7 +8164,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.
      *
@@ -7196,10 +8172,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();
@@ -7231,10 +8205,60 @@
     }
 
     @Override
-    public void enqueueSmsPickResult(String callingPackage, IIntegerConsumer pendingSubIdResult) {
+    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, String callingAttributionTag,
+            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")) {
+        if (!permissions.checkCallingCanSendSms(callingPackage, callingAttributionTag,
+                "Sending message")) {
             throw new SecurityException("Requires SEND_SMS permission to perform this operation");
         }
         PickSmsSubscriptionActivity.addPendingResult(pendingSubIdResult);
@@ -7302,4 +8326,199 @@
             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);
+        }
+    }
+
+    @Override
+    public boolean canConnectTo5GInDsdsMode() {
+        return mApp.getResources().getBoolean(R.bool.config_5g_connection_in_dsds_mode);
+    }
 }
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index 20c8276..c520063 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -22,10 +22,17 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.res.Resources;
+import android.media.AudioAttributes;
+import android.media.AudioManager;
+import android.media.MediaPlayer;
+import android.media.RingtoneManager;
 import android.net.Uri;
 import android.os.Handler;
 import android.os.Message;
 import android.os.PersistableBundle;
+import android.os.VibrationEffect;
+import android.os.Vibrator;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.VideoProfile;
@@ -43,10 +50,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 +58,10 @@
 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.io.IOException;
 import java.util.List;
 
 /**
@@ -83,6 +87,9 @@
     /** Define for not a special CNAP string */
     private static final int CNAP_SPECIAL_CASE_NO = -1;
 
+    /** Define for default vibrate pattern if res cannot be found */
+    private static final long[] DEFAULT_VIBRATE_PATTERN = {0, 250, 250, 250};
+
     /**
      * Theme to use for dialogs displayed by utility methods in this class. This is needed
      * because these dialogs are displayed using the application context, which does not resolve
@@ -91,7 +98,6 @@
     private static final int THEME = com.android.internal.R.style.Theme_DeviceDefault_Dialog_Alert;
 
     /** USSD information used to aggregate all USSD messages */
-    private static AlertDialog sUssdDialog = null;
     private static StringBuilder sUssdMsg = new StringBuilder();
 
     private static final ComponentName PSTN_CONNECTION_SERVICE_COMPONENT =
@@ -131,79 +137,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 +190,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 +234,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();
         }
@@ -428,7 +363,7 @@
         // Check to see if a UI exists for the PUK activation.  If it does
         // exist, then it indicates that we're trying to unblock the PUK.
         if ((app.getPUKEntryActivity() != null) && (state == MmiCode.State.COMPLETE)) {
-            if (DBG) log("displaying PUK unblocking progress dialog.");
+            log("displaying PUK unblocking progress dialog.");
 
             // create the progress dialog, make sure the flags and type are
             // set correctly.
@@ -448,7 +383,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 +398,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 "
@@ -575,19 +510,70 @@
                 newDialog.getButton(DialogInterface.BUTTON_NEGATIVE)
                         .setTextColor(context.getResources().getColor(R.color.dialer_theme_color));
             }
+
+            if (mmiCode.isNetworkInitiatedUssd()) {
+                playSound(context);
+            }
         }
     }
 
+    private static void playSound(Context context) {
+        AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+        int callsRingerMode = audioManager.getRingerMode();
+
+        if (callsRingerMode == AudioManager.RINGER_MODE_NORMAL) {
+            log("playSound : RINGER_MODE_NORMAL");
+            try {
+                Uri notificationUri = RingtoneManager.getDefaultUri(
+                        RingtoneManager.TYPE_NOTIFICATION);
+                MediaPlayer mediaPlayer = new MediaPlayer();
+                mediaPlayer.setDataSource(context, notificationUri);
+                AudioAttributes aa = new AudioAttributes.Builder()
+                        .setLegacyStreamType(AudioManager.STREAM_NOTIFICATION)
+                        .setUsage(AudioAttributes.USAGE_NOTIFICATION)
+                        .build();
+                mediaPlayer.setAudioAttributes(aa);
+                mediaPlayer.setLooping(false);
+                mediaPlayer.prepare();
+                mediaPlayer.start();
+            } catch (IOException e) {
+                log("playSound exception : " + e);
+            }
+        } else if (callsRingerMode == AudioManager.RINGER_MODE_VIBRATE) {
+            log("playSound : RINGER_MODE_VIBRATE");
+            Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
+            // Use NotificationManagerService#DEFAULT_VIBRATE_PATTERN if
+            // R.array.config_defaultNotificationVibePattern is not defined.
+            long[] pattern = getLongArray(context.getResources(),
+                    R.array.config_defaultNotificationVibePattern, DEFAULT_VIBRATE_PATTERN);
+            vibrator.vibrate(VibrationEffect.createWaveform(pattern, -1));
+        }
+    }
+
+    private static long[] getLongArray(Resources r, int resid, long[] def) {
+        int[] ar = r.getIntArray(resid);
+        if (ar == null) {
+            return def;
+        }
+        final int len = ar.length;
+        long[] out = new long[len];
+        for (int i = 0; i < len; i++) {
+            out[i] = ar[i];
+        }
+        return out;
+    }
+
     /**
      * It displays the message dialog for user about the mmi code result message.
      *
      * @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 + ")");
@@ -598,32 +584,36 @@
         // displaying system alert dialog on the screen instead of
         // using another activity to display the message.  This
         // places the message at the forefront of the UI.
+        AlertDialog ussdDialog = new AlertDialog.Builder(context, THEME)
+                .setPositiveButton(R.string.ok, null)
+                .setCancelable(true)
+                .setOnDismissListener(new DialogInterface.OnDismissListener() {
+                    @Override
+                    public void onDismiss(DialogInterface dialog) {
+                        sUssdMsg.setLength(0);
+                    }
+                })
+                .create();
 
-        if (sUssdDialog == null) {
-            sUssdDialog = new AlertDialog.Builder(context, THEME)
-                    .setPositiveButton(R.string.ok, null)
-                    .setCancelable(true)
-                    .setOnDismissListener(new DialogInterface.OnDismissListener() {
-                        @Override
-                        public void onDismiss(DialogInterface dialog) {
-                            sUssdMsg.setLength(0);
-                        }
-                    })
-                    .create();
+        ussdDialog.getWindow().setType(windowType);
+        ussdDialog.getWindow().addFlags(
+                WindowManager.LayoutParams.FLAG_DIM_BEHIND);
 
-            sUssdDialog.getWindow().setType(windowType);
-            sUssdDialog.getWindow().addFlags(
-                    WindowManager.LayoutParams.FLAG_DIM_BEHIND);
-        }
         if (sUssdMsg.length() != 0) {
-            sUssdMsg
-                    .insert(0, "\n")
+            sUssdMsg.insert(0, "\n")
                     .insert(0, app.getResources().getString(R.string.ussd_dialog_sep))
                     .insert(0, "\n");
         }
+        if (phone != null && phone.getCarrierName() != null) {
+            ussdDialog.setTitle(app.getResources().getString(R.string.carrier_mmi_msg_title,
+                    phone.getCarrierName()));
+        } else {
+            ussdDialog
+                    .setTitle(app.getResources().getString(R.string.default_carrier_mmi_msg_title));
+        }
         sUssdMsg.insert(0, text);
-        sUssdDialog.setMessage(sUssdMsg.toString());
-        sUssdDialog.show();
+        ussdDialog.setMessage(sUssdMsg.toString());
+        ussdDialog.show();
     }
 
     /**
@@ -654,533 +644,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 +758,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..8523a5f 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();
@@ -96,7 +97,7 @@
             return;
         }
 
-        if (!mCdmaConnections.isEmpty() && connection.isOutgoing()) {
+        if (!mCdmaConnections.isEmpty() && connection.isOutgoingCall()) {
             // There already exists a connection, so this will probably result in a conference once
             // it is added. For outgoing connections which are added while another connection
             // exists, we mark them as "dialing" for a set amount of time to give the user time to
@@ -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();
     }
@@ -182,7 +183,7 @@
                 isNewlyCreated = true;
             }
 
-            if (newConnection.isOutgoing()) {
+            if (newConnection.isOutgoingCall()) {
                 // Only an outgoing call can be merged with an ongoing call.
                 mConference.updateCapabilities(Connection.CAPABILITY_MERGE_CONFERENCE);
             } else {
@@ -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..90e7663 100644
--- a/src/com/android/services/telephony/CdmaConnection.java
+++ b/src/com/android/services/telephony/CdmaConnection.java
@@ -81,9 +81,9 @@
             Connection connection,
             EmergencyTonePlayer emergencyTonePlayer,
             boolean allowMute,
-            boolean isOutgoing,
+            int callDirection,
             String telecomCallId) {
-        super(connection, telecomCallId, isOutgoing);
+        super(connection, telecomCallId, callDirection);
         mEmergencyTonePlayer = emergencyTonePlayer;
         mAllowMute = allowMute;
         mIsCallWaiting = connection != null && connection.getState() == Call.State.WAITING;
@@ -151,7 +151,7 @@
     @Override
     public TelephonyConnection cloneConnection() {
         CdmaConnection cdmaConnection = new CdmaConnection(getOriginalConnection(),
-                mEmergencyTonePlayer, mAllowMute, mIsOutgoing, getTelecomCallId());
+                mEmergencyTonePlayer, mAllowMute, getCallDirection(), getTelecomCallId());
         return cdmaConnection;
     }
 
@@ -202,10 +202,6 @@
         }
     }
 
-    boolean isOutgoing() {
-        return mIsOutgoing;
-    }
-
     boolean isCallWaiting() {
         return mIsCallWaiting;
     }
@@ -228,8 +224,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()));
         }
     }
 
@@ -288,9 +284,8 @@
 
     private boolean isEmergency() {
         Phone phone = getPhone();
-        return phone != null &&
-                PhoneNumberUtils.isLocalEmergencyNumber(
-                    phone.getContext(), getAddress().getSchemeSpecificPart());
+        return phone != null && getAddress() != null && PhoneNumberUtils.isLocalEmergencyNumber(
+                phone.getContext(), getAddress().getSchemeSpecificPart());
     }
 
     /**
@@ -306,7 +301,7 @@
 
     private void handleCdmaConnectionTimeReset() {
         boolean isImsCall = getOriginalConnection() instanceof ImsPhoneConnection;
-        if (!isImsCall && !mIsConnectionTimeReset && mIsOutgoing
+        if (!isImsCall && !mIsConnectionTimeReset && isOutgoingCall()
                 && getOriginalConnection() != null
                 && getOriginalConnection().getState() == Call.State.ACTIVE
                 && getOriginalConnection().getDurationMillis() > 0) {
@@ -325,7 +320,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 4e8e0b5..f243462 100644
--- a/src/com/android/services/telephony/DisconnectCauseUtil.java
+++ b/src/com/android/services/telephony/DisconnectCauseUtil.java
@@ -18,11 +18,15 @@
 
 import android.content.Context;
 import android.media.ToneGenerator;
+import android.os.PersistableBundle;
 import android.provider.Settings;
 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;
@@ -103,7 +107,7 @@
                         telephonyPerciseDisconnectCause),
                 toTelecomDisconnectCauseDescription(context, telephonyDisconnectCause, phoneId),
                 toTelecomDisconnectReason(context,telephonyDisconnectCause, reason, phoneId),
-                toTelecomDisconnectCauseTone(telephonyDisconnectCause));
+                toTelecomDisconnectCauseTone(telephonyDisconnectCause, phoneId));
     }
 
     /**
@@ -114,6 +118,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:
@@ -196,6 +202,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:
@@ -341,6 +348,9 @@
             case android.telephony.DisconnectCause.DATA_LIMIT_REACHED:
                 resourceId = R.string.callFailed_data_limit_reached;
                 break;
+            case android.telephony.DisconnectCause.WIFI_LOST:
+                resourceId = R.string.callFailed_wifi_lost;
+                break;
             case android.telephony.DisconnectCause.ALREADY_DIALING:
                 resourceId = R.string.callFailed_already_dialing;
                 break;
@@ -803,6 +813,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.
@@ -817,11 +829,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;
 
@@ -838,17 +861,18 @@
             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.
+            case android.telephony.DisconnectCause.WIFI_LOST:
             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/GsmConnection.java b/src/com/android/services/telephony/GsmConnection.java
index 47434c0..769ec22 100644
--- a/src/com/android/services/telephony/GsmConnection.java
+++ b/src/com/android/services/telephony/GsmConnection.java
@@ -22,8 +22,8 @@
  * Manages a single phone call handled by GSM.
  */
 final class GsmConnection extends TelephonyConnection {
-    GsmConnection(Connection connection, String telecomCallId, boolean isOutgoing) {
-        super(connection, telecomCallId, isOutgoing);
+    GsmConnection(Connection connection, String telecomCallId, int callDirection) {
+        super(connection, telecomCallId, callDirection);
     }
 
     /**
@@ -35,9 +35,7 @@
      */
     @Override
     public TelephonyConnection cloneConnection() {
-        GsmConnection gsmConnection = new GsmConnection(getOriginalConnection(),
-                getTelecomCallId(), mIsOutgoing);
-        return gsmConnection;
+        return new GsmConnection(getOriginalConnection(), getTelecomCallId(), getCallDirection());
     }
 
     /** {@inheritDoc} */
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..816348a 100644
--- a/src/com/android/services/telephony/ImsConference.java
+++ b/src/com/android/services/telephony/ImsConference.java
@@ -20,29 +20,25 @@
 import android.graphics.drawable.Icon;
 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;
 import android.telecom.VideoProfile;
-import android.telephony.CarrierConfigManager;
 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;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
-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;
@@ -52,6 +48,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * Represents an IMS conference call.
@@ -68,7 +65,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,24 +77,124 @@
     }
 
     /**
-     * Listener used to respond to changes to conference participants.  At the conference level we
-     * are most concerned with handling destruction of a conference participant.
+     * Abstracts out carrier configuration items specific to the conference.
      */
-    private final Connection.Listener mParticipantListener = new Connection.Listener() {
+    public static class CarrierConfiguration {
         /**
-         * Participant has been destroyed.  Remove it from the conference.
-         *
-         * @param connection The participant which was destroyed.
+         * Builds and instance of {@link CarrierConfiguration}.
          */
-        @Override
-        public void onDestroyed(Connection connection) {
-            ConferenceParticipantConnection participant =
-                    (ConferenceParticipantConnection) connection;
-            removeConferenceParticipant(participant);
-            updateManageConference();
+        public static class Builder {
+            private boolean mIsMaximumConferenceSizeEnforced = false;
+            private int mMaximumConferenceSize = 5;
+            private boolean mShouldLocalDisconnectEmptyConference = false;
+            private boolean mIsHoldAllowed = false;
+
+            /**
+             * Sets whether the maximum size of the conference is enforced.
+             * @param isMaximumConferenceSizeEnforced {@code true} if conference size enforced.
+             * @return builder instance.
+             */
+            public Builder setIsMaximumConferenceSizeEnforced(
+                    boolean isMaximumConferenceSizeEnforced) {
+                mIsMaximumConferenceSizeEnforced = isMaximumConferenceSizeEnforced;
+                return this;
+            }
+
+            /**
+             * Sets the maximum size of an IMS conference.
+             * @param maximumConferenceSize Max conference size.
+             * @return builder instance.
+             */
+            public Builder setMaximumConferenceSize(int maximumConferenceSize) {
+                mMaximumConferenceSize = maximumConferenceSize;
+                return this;
+            }
+
+            /**
+             * Sets whether an empty conference should be locally disconnected.
+             * @param shouldLocalDisconnectEmptyConference {@code true} if conference should be
+             * locally disconnected if empty.
+             * @return builder instance.
+             */
+            public Builder setShouldLocalDisconnectEmptyConference(
+                    boolean shouldLocalDisconnectEmptyConference) {
+                mShouldLocalDisconnectEmptyConference = shouldLocalDisconnectEmptyConference;
+                return this;
+            }
+
+            /**
+             * Sets whether holding the conference is allowed.
+             * @param isHoldAllowed {@code true} if holding is allowed.
+             * @return builder instance.
+             */
+            public Builder setIsHoldAllowed(boolean isHoldAllowed) {
+                mIsHoldAllowed = isHoldAllowed;
+                return this;
+            }
+
+            /**
+             * Build instance of {@link CarrierConfiguration}.
+             * @return carrier config instance.
+             */
+            public ImsConference.CarrierConfiguration build() {
+                return new ImsConference.CarrierConfiguration(mIsMaximumConferenceSizeEnforced,
+                        mMaximumConferenceSize, mShouldLocalDisconnectEmptyConference,
+                        mIsHoldAllowed);
+            }
         }
 
-    };
+        private boolean mIsMaximumConferenceSizeEnforced;
+
+        private int mMaximumConferenceSize;
+
+        private boolean mShouldLocalDisconnectEmptyConference;
+
+        private boolean mIsHoldAllowed;
+
+        private CarrierConfiguration(boolean isMaximumConferenceSizeEnforced,
+                int maximumConferenceSize, boolean shouldLocalDisconnectEmptyConference,
+                boolean isHoldAllowed) {
+            mIsMaximumConferenceSizeEnforced = isMaximumConferenceSizeEnforced;
+            mMaximumConferenceSize = maximumConferenceSize;
+            mShouldLocalDisconnectEmptyConference = shouldLocalDisconnectEmptyConference;
+            mIsHoldAllowed = isHoldAllowed;
+        }
+
+        /**
+         * Determines whether the {@link ImsConference} should enforce a size limit based on
+         * {@link #getMaximumConferenceSize()}.
+         * {@code true} if maximum size limit should be enforced, {@code false} otherwise.
+         */
+        public boolean isMaximumConferenceSizeEnforced() {
+            return mIsMaximumConferenceSizeEnforced;
+        }
+
+        /**
+         * Determines the maximum number of participants (not including the host) in a conference
+         * which is enforced when {@link #isMaximumConferenceSizeEnforced()} is {@code true}.
+         */
+        public int getMaximumConferenceSize() {
+            return mMaximumConferenceSize;
+        }
+
+        /**
+         * Determines whether this {@link ImsConference} should locally disconnect itself when the
+         * number of participants in the conference drops to zero.
+         * {@code true} if empty conference should be locally disconnected, {@code false}
+         * otherwise.
+         */
+        public boolean shouldLocalDisconnectEmptyConference() {
+            return mShouldLocalDisconnectEmptyConference;
+        }
+
+        /**
+         * Determines whether holding the conference is permitted or not.
+         * {@code true} if hold is permitted, {@code false} otherwise.
+         */
+        public boolean isHoldAllowed() {
+            return mIsHoldAllowed;
+        }
+    }
 
     /**
      * Listener used to respond to changes to the underlying radio connection for the conference
@@ -104,123 +203,132 @@
     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);
+                    updateConnectionProperties(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);
+                    updateExtras(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 +353,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}.
@@ -264,11 +377,11 @@
     private boolean mIsHoldable;
     private boolean mCouldManageConference;
     private FeatureFlagProxy mFeatureFlagProxy;
-    private boolean mIsEmulatingSinglePartyCall = false;
+    private final CarrierConfiguration mCarrierConfig;
     private boolean mIsUsingSimCallManager = false;
 
     /**
-     * Where {@link #mIsEmulatingSinglePartyCall} is {@code true}, contains the
+     * Where {@link #isMultiparty()} is {@code false}, contains the
      * {@link ConferenceParticipantConnection#getUserEntity()} and
      * {@link ConferenceParticipantConnection#getEndpoint()} of the single participant which this
      * conference pretends to be.
@@ -305,29 +418,30 @@
     public ImsConference(TelecomAccountRegistry telecomAccountRegistry,
             TelephonyConnectionServiceProxy telephonyConnectionService,
             TelephonyConnection conferenceHost, PhoneAccountHandle phoneAccountHandle,
-            FeatureFlagProxy featureFlagProxy) {
+            FeatureFlagProxy featureFlagProxy, CarrierConfiguration carrierConfig) {
 
         super(phoneAccountHandle);
 
         mTelecomAccountRegistry = telecomAccountRegistry;
         mFeatureFlagProxy = featureFlagProxy;
+        mCarrierConfig = carrierConfig;
 
         // Specify the connection time of the conference to be the connection time of the original
         // connection.
         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);
 
         int capabilities = Connection.CAPABILITY_MUTE |
                 Connection.CAPABILITY_CONFERENCE_HAS_NO_CHILDREN;
-        if (canHoldImsCalls()) {
+        if (mCarrierConfig.isHoldAllowed()) {
             capabilities |= Connection.CAPABILITY_SUPPORT_HOLD | Connection.CAPABILITY_HOLD;
             mIsHoldable = true;
         }
@@ -335,7 +449,6 @@
                 mConferenceHost.getConnectionCapabilities(),
                 mConferenceHost.isCarrierVideoConferencingSupported());
         setConnectionCapabilities(capabilities);
-
     }
 
     /**
@@ -351,15 +464,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 +485,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 +508,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 +564,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.
      */
@@ -467,6 +608,8 @@
             } catch (CallStateException e) {
                 Log.e(this, e, "Exception thrown trying to hangup conference");
             }
+        } else {
+            Log.w(this, "onDisconnect - null call");
         }
     }
 
@@ -502,6 +645,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,9 +803,10 @@
      * 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
+                && !isMultiparty()
                 ? mConferenceParticipantConnections.size() > 1
                 : mConferenceParticipantConnections.size() != 0;
         Log.v(this, "updateManageConference was :%s is:%s", couldManageConference ? "Y" : "N",
@@ -654,9 +833,7 @@
      * @param conferenceHost The connection hosting the conference.
      */
     private void setConferenceHost(TelephonyConnection conferenceHost) {
-        if (Log.VERBOSE) {
-            Log.v(this, "setConferenceHost " + conferenceHost);
-        }
+        Log.i(this, "setConferenceHost " + conferenceHost);
 
         mConferenceHost = conferenceHost;
 
@@ -688,6 +865,12 @@
             mConferenceHostAddress = new Uri[hostAddresses.size()];
             mConferenceHostAddress = hostAddresses.toArray(mConferenceHostAddress);
 
+            Log.i(this, "setConferenceHost: hosts are "
+                    + Arrays.stream(mConferenceHostAddress)
+                    .map(Uri::getSchemeSpecificPart)
+                    .map(ssp -> Rlog.pii(LOG_TAG, ssp))
+                    .collect(Collectors.joining(", ")));
+
             mIsUsingSimCallManager = mTelecomAccountRegistry.isUsingSimCallManager(
                     mConferenceHostPhoneAccountHandle);
         }
@@ -698,11 +881,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(),
@@ -770,8 +953,8 @@
             // 1. We're not emulating a single party call.
             // 2. We're emulating a single party call and the CEP contains more than just the
             //    single party
-            if ((mIsEmulatingSinglePartyCall && !isSinglePartyConference) ||
-                !mIsEmulatingSinglePartyCall) {
+            if ((!isMultiparty() && !isSinglePartyConference)
+                    || isMultiparty()) {
                 // Add any new participants and update existing.
                 for (ConferenceParticipant participant : participants) {
                     Pair<Uri, Uri> userEntity = new Pair<>(participant.getHandle(),
@@ -804,6 +987,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 +1007,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 +1029,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,11 +1042,12 @@
                             + "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) {
+                } else if (!isMultiparty() && !isSinglePartyConference) {
                     // Number of participants increased, so stop emulating a single party call.
                     stopEmulatingSinglePartyCall();
                 }
@@ -861,6 +1058,14 @@
             if (newParticipantsAdded || oldParticipantsRemoved) {
                 updateManageConference();
             }
+
+            // If the conference is empty and we're supposed to do a local disconnect, do so now.
+            if (mCarrierConfig.shouldLocalDisconnectEmptyConference()
+                    && oldParticipantCount > 0 && newParticipantCount == 0) {
+                Log.i(this, "handleConferenceParticipantsUpdate: empty conference; "
+                        + "local disconnect.");
+                onDisconnect();
+            }
         }
     }
 
@@ -884,7 +1089,6 @@
 
         Log.i(this, "stopEmulatingSinglePartyCall: conference now has more than one"
                 + " participant; make it look conference-like again.");
-        mIsEmulatingSinglePartyCall = false;
 
         if (mCouldManageConference) {
             int currentCapabilities = getConnectionCapabilities();
@@ -903,7 +1107,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.
@@ -933,7 +1138,6 @@
         Log.i(this, "startEmulatingSinglePartyCall: conference has a single "
                 + "participant; downgrade to single party call.");
 
-        mIsEmulatingSinglePartyCall = true;
         Iterator<ConferenceParticipantConnection> valueIterator =
                 mConferenceParticipantConnections.values().iterator();
         if (valueIterator.hasNext()) {
@@ -943,17 +1147,18 @@
             setAddress(entry.getAddress(), entry.getAddressPresentation());
             setCallerDisplayName(entry.getCallerDisplayName(),
                     entry.getCallerDisplayNamePresentation());
-            setConnectionStartElapsedRealTime(entry.getConnectElapsedTimeMillis());
+            setConnectionStartElapsedRealtimeMillis(
+                    entry.getConnectionStartElapsedRealtimeMillis());
             setConnectionTime(entry.getConnectTimeMillis());
+            setCallDirection(entry.getCallDirection());
             mLoneParticipantIdentity = new Pair<>(entry.getUserEntity(), entry.getEndpoint());
 
             // Remove the participant from Telecom.  It'll get picked up in a future CEP update
             // 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 +1166,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,18 +1191,24 @@
         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.
         connection.setCallDirection(participant.getCallDirection());
 
+        // Ensure important attributes of the parent get copied to child.
+        connection.setConnectionProperties(applyHostPropertiesToChild(
+                connection.getConnectionProperties(), parent.getConnectionProperties()));
+        connection.setStatusHints(parent.getStatusHints());
+        connection.setExtras(getChildExtrasFromHostBundle(parent.getExtras()));
+
         Log.i(this, "createConferenceParticipantConnection: participant=%s, connection=%s",
                 participant, connection);
 
@@ -1007,7 +1219,7 @@
 
         mTelephonyConnectionService.addExistingConnection(mConferenceHostPhoneAccountHandle,
                 connection, this);
-        addConnection(connection);
+        addTelephonyConnection(connection);
     }
 
     /**
@@ -1018,12 +1230,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 +1247,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 +1310,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;
@@ -1151,24 +1361,24 @@
             if (mConferenceHost.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_GSM) {
                 Log.i(this,"handleOriginalConnectionChange : SRVCC to GSM");
                 GsmConnection c = new GsmConnection(originalConnection, getTelecomCallId(),
-                        mConferenceHost.isOutgoingCall());
+                        mConferenceHost.getCallDirection());
                 // 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 +1395,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 +1419,13 @@
                 }
                 setDisconnected(disconnectCause);
                 disconnectConferenceParticipants();
-                destroy();
+                destroyTelephonyConference();
                 break;
             case Connection.STATE_ACTIVE:
-                setActive();
+                setConferenceOnActive();
                 break;
             case Connection.STATE_HOLDING:
-                setOnHold();
+                setConferenceOnHold();
                 break;
         }
     }
@@ -1224,8 +1436,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() {
@@ -1238,11 +1450,17 @@
             Phone phone = mConferenceHost.getPhone();
             if (phone != null) {
                 Context context = phone.getContext();
-                setStatusHints(new StatusHints(
+                StatusHints hints = new StatusHints(
                         context.getString(R.string.status_hint_label_wifi_call),
                         Icon.createWithResource(
                                 context, R.drawable.ic_signal_wifi_4_bar_24dp),
-                        null /* extras */));
+                        null /* extras */);
+                setStatusHints(hints);
+
+                // Ensure the children know they're a WIFI call as well.
+                for (Connection c : getConnections()) {
+                    c.setStatusHints(hints);
+                }
             }
         } else {
             setStatusHints(null);
@@ -1250,6 +1468,69 @@
     }
 
     /**
+     * Updates the conference's properties based on changes to the host.
+     * Also ensures pertinent properties from the host such as the WIFI property are copied to the
+     * children as well.
+     * @param connectionProperties The new host properties.
+     */
+    private void updateConnectionProperties(int connectionProperties) {
+        int properties = ImsConference.this.getConnectionProperties();
+        setConnectionProperties(applyHostProperties(properties, connectionProperties));
+
+        for (Connection c : getConnections()) {
+            c.setConnectionProperties(applyHostPropertiesToChild(c.getConnectionProperties(),
+                    connectionProperties));
+        }
+    }
+
+    /**
+     * Updates extras in the conference based on changes made in the parent.
+     * Also copies select extras (e.g. EXTRA_CALL_NETWORK_TYPE) to the children as well.
+     * @param extras The extras to copy.
+     */
+    private void updateExtras(Bundle extras) {
+        putExtras(extras);
+
+        if (extras == null) {
+            return;
+        }
+
+        Bundle childBundle = getChildExtrasFromHostBundle(extras);
+        for (Connection c : getConnections()) {
+            c.putExtras(childBundle);
+        }
+    }
+
+    /**
+     * Given an extras bundle from the host, returns a new bundle containing those extras which are
+     * releveant to the children.
+     * @param extras The host extras.
+     * @return The extras pertinent to the children.
+     */
+    private Bundle getChildExtrasFromHostBundle(Bundle extras) {
+        Bundle extrasToCopy = new Bundle();
+        if (extras != null && extras.containsKey(TelecomManager.EXTRA_CALL_NETWORK_TYPE)) {
+            int networkType = extras.getInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE);
+            extrasToCopy.putInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE, networkType);
+        }
+        return extrasToCopy;
+    }
+
+    /**
+     * Given the properties from a conference host applies and changes to the host's properties to
+     * the child as well.
+     * @param childProperties The existing child properties.
+     * @param hostProperties The properties from the host.
+     * @return The child properties with the applicable host bits set/unset.
+     */
+    private int applyHostPropertiesToChild(int childProperties, int hostProperties) {
+        childProperties = changeBitmask(childProperties,
+                Connection.PROPERTY_WIFI,
+                (hostProperties & Connection.PROPERTY_WIFI) != 0);
+        return childProperties;
+    }
+
+    /**
      * Builds a string representation of the {@link ImsConference}.
      *
      * @return String representing the conference.
@@ -1270,51 +1551,6 @@
         return sb.toString();
     }
 
-    private boolean canHoldImsCalls() {
-        PersistableBundle b = getCarrierConfig();
-        // Return true if the CarrierConfig is unavailable
-        return b == null || b.getBoolean(CarrierConfigManager.KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL);
-    }
-
-    private PersistableBundle getCarrierConfig() {
-        if (mConferenceHost == null) {
-            return null;
-        }
-
-        Phone phone = mConferenceHost.getPhone();
-        if (phone == null) {
-            return null;
-        }
-        return PhoneGlobals.getInstance().getCarrierConfigForSubId(phone.getSubId());
-    }
-
-    /**
-     * @return {@code true} if the carrier associated with the conference requires that the maximum
-     *      size of the conference is enforced, {@code false} otherwise.
-     */
-    public boolean isMaximumConferenceSizeEnforced() {
-        PersistableBundle b = getCarrierConfig();
-        // Return false if the CarrierConfig is unavailable
-        return b != null && b.getBoolean(
-                CarrierConfigManager.KEY_IS_IMS_CONFERENCE_SIZE_ENFORCED_BOOL);
-    }
-
-    /**
-     * @return The maximum size of a conference call where
-     * {@link #isMaximumConferenceSizeEnforced()} is true.
-     */
-    public int getMaximumConferenceSize() {
-        PersistableBundle b = getCarrierConfig();
-
-        // If there is no carrier config its really a problem, but we'll still define a sane limit
-        // of 5 so that we can still make a conference.
-        if (b == null) {
-            Log.w(this, "getMaximumConferenceSize - failed to get conference size");
-            return 5;
-        }
-        return b.getInt(CarrierConfigManager.KEY_IMS_CONFERENCE_SIZE_LIMIT_INT);
-    }
-
     /**
      * @return The number of participants in the conference.
      */
@@ -1327,7 +1563,18 @@
      *      participants in the conference has reached the limit, {@code false} otherwise.
      */
     public boolean isFullConference() {
-        return isMaximumConferenceSizeEnforced()
-                && getNumberOfParticipants() >= getMaximumConferenceSize();
+        return mCarrierConfig.isMaximumConferenceSizeEnforced()
+                && getNumberOfParticipants() >= mCarrierConfig.getMaximumConferenceSize();
+    }
+
+    /**
+     * 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..6d3d4c2 100644
--- a/src/com/android/services/telephony/ImsConferenceController.java
+++ b/src/com/android/services/telephony/ImsConferenceController.java
@@ -16,12 +16,17 @@
 
 package com.android.services.telephony;
 
+import android.content.Context;
+import android.os.PersistableBundle;
 import android.telecom.Conference;
 import android.telecom.Conferenceable;
 import android.telecom.Connection;
 import android.telecom.ConnectionService;
 import android.telecom.DisconnectCause;
 import android.telecom.PhoneAccountHandle;
+import android.telephony.CarrierConfigManager;
+
+import com.android.telephony.Rlog;
 
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
@@ -38,43 +43,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 +84,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 +116,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 +138,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 +175,9 @@
         }
 
         mTelephonyConnections.add(connection);
-        connection.addConnectionListener(mConnectionListener);
+        connection.addTelephonyConnectionListener(mTelephonyConnectionListener);
         recalculateConference();
+        recalculateConferenceable();
     }
 
     /**
@@ -175,7 +203,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 +277,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 +392,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.
@@ -367,6 +407,7 @@
         PhoneAccountHandle phoneAccountHandle = null;
 
         // Attempt to determine the phone account associated with the conference host connection.
+        ImsConference.CarrierConfiguration carrierConfig = null;
         if (connection.getPhone() != null &&
                 connection.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_IMS) {
             Phone imsPhone = connection.getPhone();
@@ -374,12 +415,14 @@
             // base GSM or CDMA phone, not on the ImsPhone itself).
             phoneAccountHandle =
                     PhoneUtils.makePstnPhoneAccountHandle(imsPhone.getDefaultPhone());
+            carrierConfig = getCarrierConfig(imsPhone);
         }
 
         ImsConference conference = new ImsConference(mTelecomAccountRegistry, mConnectionService,
-                conferenceHostConnection, phoneAccountHandle, mFeatureFlagProxy);
+                conferenceHostConnection, phoneAccountHandle, mFeatureFlagProxy, carrierConfig);
         conference.setState(conferenceHostConnection.getState());
-        conference.addListener(mConferenceListener);
+        conference.setCallDirection(conferenceHostConnection.getCallDirection());
+        conference.addTelephonyConferenceListener(mConferenceListener);
         conference.updateConferenceParticipantsAfterCreation();
         mConnectionService.addConference(conference);
         conferenceHostConnection.setTelecomCallId(conference.getTelecomCallId());
@@ -387,15 +430,43 @@
         // 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.
         recalculateConferenceable();
     }
+
+    public static ImsConference.CarrierConfiguration getCarrierConfig(Phone phone) {
+        ImsConference.CarrierConfiguration.Builder config =
+                new ImsConference.CarrierConfiguration.Builder();
+        if (phone == null) {
+            return config.build();
+        }
+
+        CarrierConfigManager cfgManager = (CarrierConfigManager)
+                phone.getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE);
+        if (cfgManager != null) {
+            PersistableBundle bundle = cfgManager.getConfigForSubId(phone.getSubId());
+            boolean isMaximumConferenceSizeEnforced = bundle.getBoolean(
+                    CarrierConfigManager.KEY_IS_IMS_CONFERENCE_SIZE_ENFORCED_BOOL);
+            int maximumConferenceSize = bundle.getInt(
+                    CarrierConfigManager.KEY_IMS_CONFERENCE_SIZE_LIMIT_INT);
+            boolean isHoldAllowed = bundle.getBoolean(
+                    CarrierConfigManager.KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL);
+            boolean shouldLocalDisconnectOnEmptyConference = bundle.getBoolean(
+                    CarrierConfigManager.KEY_LOCAL_DISCONNECT_EMPTY_IMS_CONFERENCE_BOOL);
+
+            config.setIsMaximumConferenceSizeEnforced(isMaximumConferenceSizeEnforced)
+                    .setMaximumConferenceSize(maximumConferenceSize)
+                    .setIsHoldAllowed(isHoldAllowed)
+                    .setShouldLocalDisconnectEmptyConference(
+                            shouldLocalDisconnectOnEmptyConference);
+        }
+        return config.build();
+    }
 }
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..93e1e3c 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.
@@ -147,6 +172,7 @@
      * call with {@link Callback#isOkToCall}
      */
     private void onServiceStateChanged(ServiceState state) {
+        if (mPhone == null) return;
         Log.d(this, "onServiceStateChanged(), new state = %s, Phone = %s", state,
                 mPhone.getPhoneId());
 
@@ -169,6 +195,18 @@
         }
     }
 
+    private void onRadioOn() {
+        if (mPhone == null) return;
+        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.
      */
@@ -180,6 +218,7 @@
      * Handles the retry timer expiring.
      */
     private void onRetryTimeout() {
+        if (mPhone == null) return;
         int serviceState = mPhone.getServiceState().getState();
         Log.d(this, "onRetryTimeout():  phone state = %s, service state = %d, retries = %d.",
                 mPhone.getState(), serviceState, mNumRetriesSoFar);
@@ -208,7 +247,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 +271,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 +279,8 @@
         onComplete(false);
 
         unregisterForServiceStateChanged();
+        unregisterForRadioOff();
+        unregisterForRadioOn();
         cancelRetryTimer();
 
         // Used for unregisterForServiceStateChanged() so we null it out here instead.
@@ -271,6 +313,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..3b8f4fd 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -32,11 +32,12 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.HandlerThread;
 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 +50,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.ExponentialBackoff;
 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,12 +79,33 @@
  */
 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.
     private final static int DEFAULT_SIM_ICON =  R.drawable.ic_multi_sim;
     private final static String GROUP_PREFIX = "group_";
 
+    private static final int REGISTER_START_DELAY_MS = 1 * 1000; // 1 second
+    private static final int REGISTER_MAXIMUM_DELAY_MS = 60 * 1000; // 1 minute
+
+    /**
+     * Indicates the {@link SubscriptionManager.OnSubscriptionsChangedListener} has not yet been
+     * registered.
+     */
+    private static final int LISTENER_STATE_UNREGISTERED = 0;
+
+    /**
+     * Indicates the first {@link SubscriptionManager.OnSubscriptionsChangedListener} registration
+     * attempt failed and we are performing backoff registration.
+     */
+    private static final int LISTENER_STATE_PERFORMING_BACKOFF = 2;
+
+    /**
+     * Indicates the {@link SubscriptionManager.OnSubscriptionsChangedListener} has been registered.
+     */
+    private static final int LISTENER_STATE_REGISTERED = 3;
+
     final class AccountEntry implements PstnPhoneCapabilitiesNotifier.Listener {
         private final Phone mPhone;
         private PhoneAccount mAccount;
@@ -85,9 +113,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 +135,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 +168,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 +224,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 +298,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 +307,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 +394,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 +470,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 +565,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 +605,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 +771,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 +832,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;
         }
 
         /**
@@ -789,23 +973,49 @@
             new OnSubscriptionsChangedListener() {
         @Override
         public void onSubscriptionsChanged() {
-            // Any time the SubscriptionInfo changes...rerun the setup
-            Log.i(this, "onSubscriptionsChanged - update accounts");
+            if (mSubscriptionListenerState != LISTENER_STATE_REGISTERED) {
+                mRegisterSubscriptionListenerBackoff.stop();
+                mHandlerThread.quitSafely();
+            }
+            mSubscriptionListenerState = LISTENER_STATE_REGISTERED;
+
+            // Any time the SubscriptionInfo changes rerun the setup
+            Log.i(this, "TelecomAccountRegistry: onSubscriptionsChanged - update accounts");
             tearDownAccounts();
             setupAccounts();
         }
+
+        @Override
+        public void onAddListenerFailed() {
+            // Woe!  Failed to add the listener!
+            Log.w(this, "TelecomAccountRegistry: onAddListenerFailed - failed to register "
+                    + "OnSubscriptionsChangedListener");
+
+            // Even though registering the listener failed, we will still try to setup the phone
+            // accounts now; the phone instances should already be present and ready, so even if
+            // telephony registry is poking along we can still try to setup the phone account.
+            tearDownAccounts();
+            setupAccounts();
+
+            if (mSubscriptionListenerState == LISTENER_STATE_UNREGISTERED) {
+                // Initial registration attempt failed; start exponential backoff.
+                mSubscriptionListenerState = LISTENER_STATE_PERFORMING_BACKOFF;
+                mRegisterSubscriptionListenerBackoff.start();
+            } else {
+                // We're already doing exponential backoff and a registration failed.
+                mRegisterSubscriptionListenerBackoff.notifyFailed();
+            }
+        }
     };
 
     private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
             if (Intent.ACTION_USER_SWITCHED.equals(intent.getAction())) {
-                Log.i(this, "User changed, re-registering phone accounts.");
+                Log.i(this, "TelecomAccountRegistry: 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 +1030,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,23 +1070,47 @@
     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>();
     private final Object mAccountsLock = new Object();
+    private int mSubscriptionListenerState = LISTENER_STATE_UNREGISTERED;
     private int mServiceState = ServiceState.STATE_POWER_OFF;
     private int mActiveDataSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     private boolean mIsPrimaryUser = true;
+    private ExponentialBackoff mRegisterSubscriptionListenerBackoff;
+    private final HandlerThread mHandlerThread = new HandlerThread("TelecomAccountRegistry");
 
     // TODO: Remove back-pointer from app singleton to Service, since this is not a preferred
     // pattern; redesign. This was added to fix a late release bug.
     private TelephonyConnectionService mTelephonyConnectionService;
 
+    // Used to register subscription changed listener when initial attempts fail.
+    private Runnable mRegisterOnSubscriptionsChangedListenerRunnable = new Runnable() {
+        @Override
+        public void run() {
+            if (mSubscriptionListenerState != LISTENER_STATE_REGISTERED) {
+                Log.i(this, "TelecomAccountRegistry: performing delayed register.");
+                SubscriptionManager.from(mContext).addOnSubscriptionsChangedListener(
+                        mOnSubscriptionsChangedListener);
+            }
+        }
+    };
+
     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);
+        mHandlerThread.start();
+        mRegisterSubscriptionListenerBackoff = new ExponentialBackoff(
+                REGISTER_START_DELAY_MS,
+                REGISTER_MAXIMUM_DELAY_MS,
+                2, /* multiplier */
+                mHandlerThread.getLooper(),
+                mRegisterOnSubscriptionsChangedListenerRunnable);
     }
 
     /**
@@ -1039,6 +1282,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.
@@ -1068,6 +1326,7 @@
 
         // Register for SubscriptionInfo list changes which is guaranteed
         // to invoke onSubscriptionsChanged the first time.
+        Log.i(this, "TelecomAccountRegistry: setupOnBoot - register subscription listener");
         SubscriptionManager.from(mContext).addOnSubscriptionsChangedListener(
                 mOnSubscriptionsChangedListener);
 
@@ -1083,6 +1342,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 +1368,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.COLUMN_IMS_RCS_UCE_ENABLED);
+        mContext.getContentResolver().registerContentObserver(
+                contactDiscUri, true /*notifyForDescendants*/, contactDiscoveryObserver);
     }
 
     /**
@@ -1132,7 +1418,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 +1486,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..b4dd050
--- 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();
@@ -683,11 +769,6 @@
     private boolean mIsCdmaVoicePrivacyEnabled;
 
     /**
-     * Indicates whether this call is an outgoing call.
-     */
-    protected final boolean mIsOutgoing;
-
-    /**
      * Indicates whether the connection can be held. This filed combined with the state of the
      * connection can determine whether {@link Connection#CAPABILITY_HOLD} should be added to the
      * connection.
@@ -710,14 +791,19 @@
     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(
             new ConcurrentHashMap<TelephonyConnectionListener, Boolean>(8, 0.9f, 1));
 
     protected TelephonyConnection(com.android.internal.telephony.Connection originalConnection,
-            String callId, boolean isOutgoingCall) {
-        mIsOutgoing = isOutgoingCall;
+            String callId, @android.telecom.Call.Details.CallDirection int callDirection) {
+        setCallDirection(callDirection);
         setTelecomCallId(callId);
         if (originalConnection != null) {
             setOriginalConnection(originalConnection);
@@ -781,6 +867,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 +889,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 +933,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 +1068,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 +1174,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 +1231,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 +1269,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 +1338,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 +1350,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 +1361,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();
 
@@ -1185,6 +1382,8 @@
         if (PhoneNumberUtils.isEmergencyNumber(mOriginalConnection.getAddress())) {
             mTreatAsEmergencyCall = true;
         }
+        // Propagate VERSTAT for IMS calls.
+        setCallerNumberVerificationStatus(mOriginalConnection.getNumberVerificationStatus());
 
         if (isImsConnection()) {
             mWasImsConnection = true;
@@ -1204,8 +1403,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 +1449,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;
@@ -1278,12 +1568,13 @@
         boolean wasVideoCall = false;
         boolean isVowifiEnabled = false;
         if (phone instanceof ImsPhone) {
-            ImsPhone imsPhone = (ImsPhone) phone;
-            if (imsPhone.getForegroundCall() != null
-                    && imsPhone.getForegroundCall().getImsCall() != null) {
-                ImsCall call = imsPhone.getForegroundCall().getImsCall();
-                isCurrentVideoCall = call.isVideoCall();
-                wasVideoCall = call.wasVideoCall();
+            ImsPhoneCall foregroundCall = ((ImsPhone) phone).getForegroundCall();
+            if (foregroundCall != null) {
+                ImsCall call = foregroundCall.getImsCall();
+                if (call != null) {
+                    isCurrentVideoCall = call.isVideoCall();
+                    wasVideoCall = call.wasVideoCall();
+                }
             }
 
             isVowifiEnabled = ImsUtil.isWfcEnabled(phone.getContext(), phone.getPhoneId());
@@ -1333,13 +1624,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 +1755,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 +1834,7 @@
                 getPhone().unregisterForPreciseCallStateChanged(mHandler);
                 getPhone().unregisterForRingbackTone(mHandler);
                 getPhone().unregisterForHandoverStateChanged(mHandler);
+                getPhone().unregisterForRedialConnectionChanged(mHandler);
                 getPhone().unregisterForDisconnect(mHandler);
                 getPhone().unregisterForSuppServiceNotification(mHandler);
                 getPhone().unregisterForOnHoldTone(mHandler);
@@ -1408,6 +1849,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 +1879,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();
@@ -1494,7 +1976,7 @@
      */
     public List<ConferenceParticipant> getConferenceParticipants() {
         if (mOriginalConnection == null) {
-            Log.v(this, "Null mOriginalConnection, cannot get conf participants.");
+            Log.w(this, "Null mOriginalConnection, cannot get conf participants.");
             return null;
         }
         return mOriginalConnection.getConferenceParticipants();
@@ -1539,8 +2021,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 +2040,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 +2115,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 +2148,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 +2182,7 @@
         updateAddress();
         updateMultiparty();
         refreshDisableAddCall();
+        refreshCodecType();
     }
 
     /**
@@ -1744,8 +2241,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 +2251,18 @@
                 }
             }
         }
-        setActive();
+        setTelephonyConnectionActive();
     }
 
-    protected void close() {
+    public void close() {
         Log.v(this, "close");
         clearOriginalConnection();
         destroy();
+        if (mTelephonyConnectionService != null) {
+            removeTelephonyConnectionListener(
+                    mTelephonyConnectionService.getTelephonyConnectionListener());
+        }
+        notifyDestroyed();
     }
 
     /**
@@ -1772,9 +2274,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 +2289,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 +2312,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 +2373,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);
 
@@ -1915,8 +2424,8 @@
     /**
      * @return {@code true} if this is an outgoing call, {@code false} otherwise.
      */
-    boolean isOutgoingCall() {
-        return mIsOutgoing;
+    public boolean isOutgoingCall() {
+        return getCallDirection() == android.telecom.Call.Details.DIRECTION_OUTGOING;
     }
 
     /**
@@ -2104,13 +2613,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 +2697,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 +2824,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 +2835,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..356407a 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;
@@ -69,6 +71,7 @@
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -100,15 +103,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 +127,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 +163,8 @@
     // destroyed.
     @VisibleForTesting
     public Pair<WeakReference<TelephonyConnection>, Queue<Phone>> mEmergencyRetryCache;
+    private Handler mDdsSwitchHandler;
+    private HandlerThread mHandlerThread;
     private DeviceState mDeviceState = new DeviceState();
 
     /**
@@ -184,6 +178,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;
@@ -251,12 +247,20 @@
 
         @Override
         public boolean isCurrentEmergencyNumber(String number) {
-            return mTelephonyManager.isEmergencyNumber(number);
+            try {
+                return mTelephonyManager.isEmergencyNumber(number);
+            } catch (IllegalStateException ise) {
+                return false;
+            }
         }
 
         @Override
         public Map<Integer, List<EmergencyNumber>> getCurrentEmergencyNumberList() {
-            return mTelephonyManager.getEmergencyNumberList();
+            try {
+                return mTelephonyManager.getEmergencyNumberList();
+            } catch (IllegalStateException ise) {
+                return new HashMap<>();
+            }
         }
     }
 
@@ -347,6 +351,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 +430,14 @@
     }
 
     /**
+     * Overrides radioOnHelper for testing.
+     */
+    @VisibleForTesting
+    public void setRadioOnHelper(RadioOnHelper radioOnHelper) {
+        mRadioOnHelper = radioOnHelper;
+    }
+
+    /**
      * Overrides PhoneSwitcher dependencies for testing.
      */
     @VisibleForTesting
@@ -429,6 +462,14 @@
     }
 
     /**
+     * Override Handler creation factory for testing.
+     */
+    @VisibleForTesting
+    public void setHandlerFactory(HandlerFactory handlerFactory) {
+        mHandlerFactory = handlerFactory;
+    }
+
+    /**
      * Override DisconnectCause creation for testing.
      */
     @VisibleForTesting
@@ -452,10 +493,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 +520,151 @@
         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,
+                ImsConferenceController.getCarrierConfig(connection.getPhone()));
+        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 +672,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 +777,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 +799,7 @@
                 @Override
                 public void onComplete(RadioOnStateListener listener, boolean isRadioReady) {
                     handleOnComplete(isRadioReady, isEmergencyNumber, resultConnection, request,
-                            numberToDial, resultHandle, originalPhoneType);
+                            numberToDial, resultHandle, originalPhoneType, phone);
                 }
 
                 @Override
@@ -626,17 +815,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 +844,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 +920,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 +976,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 +1056,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 +1119,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 +1142,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 +1151,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 +1188,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 +1218,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 +1279,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 +1455,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 +1500,6 @@
     @Override
     public void onConnectionAdded(Connection connection) {
         if (connection instanceof Holdable && !isExternalConnection(connection)) {
-            connection.addConnectionListener(mConnectionListener);
             mHoldTracker.addHoldable(
                     connection.getPhoneAccountHandle(), (Holdable) connection);
         }
@@ -1343,9 +1630,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));
         }
     }
 
@@ -1365,11 +1650,54 @@
 
     private void placeOutgoingConnection(
             TelephonyConnection connection, Phone phone, int videoState, Bundle extras) {
-        String number = connection.getAddress().getSchemeSpecificPart();
+
+        String number = (connection.getAddress() != null)
+                ? connection.getAddress().getSchemeSpecificPart()
+                : "";
 
         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 +1706,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,40 +1722,109 @@
                 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();
+        int callDirection = isOutgoing ? android.telecom.Call.Details.DIRECTION_OUTGOING
+                : android.telecom.Call.Details.DIRECTION_INCOMING;
         if (phoneType == TelephonyManager.PHONE_TYPE_GSM) {
-            returnConnection = new GsmConnection(originalConnection, telecomCallId, isOutgoing);
+            returnConnection = new GsmConnection(originalConnection, telecomCallId, callDirection);
         } else if (phoneType == TelephonyManager.PHONE_TYPE_CDMA) {
             boolean allowsMute = allowsMute(phone);
             returnConnection = new CdmaConnection(originalConnection, mEmergencyTonePlayer,
-                    allowsMute, isOutgoing, telecomCallId);
+                    allowsMute, callDirection, 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 +1834,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 +1887,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 +2106,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 +2153,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 +2172,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 +2233,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 +2294,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 +2329,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 +2345,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..132d893 100644
--- a/tests/src/com/android/TelephonyTestBase.java
+++ b/tests/src/com/android/TelephonyTestBase.java
@@ -16,10 +16,14 @@
 
 package com.android;
 
+import static org.mockito.Mockito.spy;
+
 import android.os.Handler;
 import android.os.Looper;
 import android.util.Log;
 
+import com.android.internal.telephony.PhoneConfigurationManager;
+
 import org.mockito.MockitoAnnotations;
 
 import java.util.concurrent.CountDownLatch;
@@ -34,7 +38,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();
@@ -50,6 +54,8 @@
     }
 
     public void tearDown() throws Exception {
+        // Ensure there are no static references to handlers after test completes.
+        PhoneConfigurationManager.unregisterAllMultiSimConfigChangeRegistrants();
     }
 
     protected final void waitForHandlerAction(Handler h, long timeoutMillis) {
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 77ff158..b2489e7 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;
@@ -190,11 +191,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);
 
         // set this permission to denied by default, and only allow for the proper pid/uid
@@ -226,6 +227,7 @@
         return new LocationAccessPolicy.LocationPermissionQuery.Builder()
                 .setMethod("test")
                 .setCallingPackage("com.android.test")
+                .setCallingFeatureId(null)
                 .setCallingPid(TESTING_PID)
                 .setCallingUid(TESTING_UID);
     }
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/PhoneInterfaceManagerTest.java b/tests/src/com/android/phone/PhoneInterfaceManagerTest.java
deleted file mode 100644
index 9f8de9e..0000000
--- a/tests/src/com/android/phone/PhoneInterfaceManagerTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 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 junit.framework.TestCase.fail;
-
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-
-import android.content.pm.PackageManager;
-import android.os.Binder;
-import android.util.Log;
-
-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;
-
-
-@RunWith(AndroidJUnit4.class)
-public class PhoneInterfaceManagerTest extends TelephonyTestBase {
-
-    private static final String PRIVILEGED_PACKAGE_NAME = "test.package.name";
-
-    private static final String TAG = "PhoneInterfaceManagerTest";
-
-    private PhoneInterfaceManager mPhoneInterfaceManager;
-    private PhoneGlobals mMockPhoneGlobals;
-
-    @Before
-    public void setUp() throws Exception {
-        super.setUp();
-        mMockPhoneGlobals = mock(PhoneGlobals.class);
-        //PhoneGlobals phoneGlobals = new PhoneGlobals(mContext);
-        mPhoneInterfaceManager = new PhoneInterfaceManager(mMockPhoneGlobals);
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        super.tearDown();
-    }
-
-    @Test
-    public void testGetUiccCardsInfoSecurity() {
-        // Set up mocks so that the supplied package UID does not equal the calling UID
-        PackageManager mockPackageManager = mock(PackageManager.class);
-        try {
-            doReturn(Binder.getCallingUid() + 1).when(mockPackageManager)
-                    .getPackageUid(eq(PRIVILEGED_PACKAGE_NAME), anyInt());
-        } catch (Exception e) {
-            Log.d(TAG, "testGetUiccCardsInfoSecurity unable to setup mocks");
-            fail();
-        }
-        doReturn(mockPackageManager).when(mContext).getPackageManager();
-        doReturn(mockPackageManager).when(mMockPhoneGlobals).getPackageManager();
-        try {
-            mPhoneInterfaceManager.getUiccCardsInfo(PRIVILEGED_PACKAGE_NAME);
-            fail();
-        } catch (SecurityException e) {
-            Log.d(TAG, "testGetUiccCardsInfoSecurity e = " + e);
-        }
-    }
-}
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/DisconnectCauseUtilTest.java b/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java
new file mode 100644
index 0000000..7f9efdc
--- /dev/null
+++ b/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java
@@ -0,0 +1,46 @@
+/*
+ * 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;
+
+import static android.media.ToneGenerator.TONE_PROP_PROMPT;
+
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.TestCase.assertEquals;
+
+import android.telephony.DisconnectCause;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class DisconnectCauseUtilTest {
+    /**
+     * Verifies that a call drop due to loss of WIFI results in a disconnect cause of error and that
+     * the label, description and tone are all present.
+     */
+    @Test
+    public void testDropDueToWifiLoss() {
+        android.telecom.DisconnectCause tcCause = DisconnectCauseUtil.toTelecomDisconnectCause(
+                DisconnectCause.WIFI_LOST);
+        assertEquals(android.telecom.DisconnectCause.ERROR, tcCause.getCode());
+        assertEquals(TONE_PROP_PROMPT, tcCause.getTone());
+        assertNotNull(tcCause.getDescription());
+        assertNotNull(tcCause.getReason());
+    }
+}
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..f13d709 100644
--- a/tests/src/com/android/services/telephony/ImsConferenceTest.java
+++ b/tests/src/com/android/services/telephony/ImsConferenceTest.java
@@ -16,40 +16,40 @@
 
 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.assertNotNull;
+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.Bundle;
 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.telecom.StatusHints;
+import android.telecom.TelecomManager;
+import android.telephony.TelephonyManager;
 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.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
 
 import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 
 public class ImsConferenceTest {
     @Mock
@@ -71,6 +71,53 @@
         when(mMockTelecomAccountRegistry.getAddress(any(PhoneAccountHandle.class)))
                 .thenReturn(null);
     }
+    @Test
+    @SmallTest
+    public void testPropertyPropagation() {
+        when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
+                .thenReturn(false);
+        mConferenceHost.setConnectionProperties(Connection.PROPERTY_ASSISTED_DIALING
+                | Connection.PROPERTY_WIFI);
+        Bundle extras = new Bundle();
+        extras.putInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE, TelephonyManager.NETWORK_TYPE_IWLAN);
+        mConferenceHost.putTelephonyExtras(extras);
+        mConferenceHost.setStatusHints(new StatusHints("WIFIs", null, null));
+
+        ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
+                mMockTelephonyConnectionServiceProxy, mConferenceHost,
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
+
+        ConferenceParticipant participant1 = new ConferenceParticipant(
+                Uri.parse("tel:6505551212"),
+                "A",
+                Uri.parse("sip:6505551212@testims.com"),
+                Connection.STATE_ACTIVE,
+                Call.Details.DIRECTION_OUTGOING);
+        ConferenceParticipant participant2 = new ConferenceParticipant(
+                Uri.parse("tel:6505551213"),
+                "A",
+                Uri.parse("sip:6505551213@testims.com"),
+                Connection.STATE_ACTIVE,
+                Call.Details.DIRECTION_INCOMING);
+        imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
+                Arrays.asList(participant1, participant2));
+        assertEquals(2, imsConference.getNumberOfParticipants());
+        ArgumentCaptor<Connection> captor = ArgumentCaptor.forClass(Connection.class);
+        verify(mMockTelephonyConnectionServiceProxy, times(2)).addExistingConnection(
+                any(PhoneAccountHandle.class), captor.capture(),
+                eq(imsConference));
+
+        // Make sure they're set on the initially created participants.
+        for (Connection c : captor.getAllValues()) {
+            assertEquals(0, c.getConnectionProperties() & Connection.PROPERTY_ASSISTED_DIALING);
+            assertEquals(Connection.PROPERTY_WIFI,
+                    c.getConnectionProperties() & Connection.PROPERTY_WIFI);
+            assertNotNull(c.getStatusHints());
+            assertEquals(TelephonyManager.NETWORK_TYPE_IWLAN, c.getExtras().getInt(
+                    TelecomManager.EXTRA_CALL_NETWORK_TYPE));
+        }
+    }
 
     @Test
     @SmallTest
@@ -80,14 +127,15 @@
 
         ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
                 mMockTelephonyConnectionServiceProxy, mConferenceHost,
-                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
 
         ConferenceParticipant participant1 = new ConferenceParticipant(
                 Uri.parse("tel:6505551212"),
                 "A",
                 Uri.parse("sip:6505551212@testims.com"),
                 Connection.STATE_ACTIVE,
-                Call.Details.DIRECTION_INCOMING);
+                Call.Details.DIRECTION_OUTGOING);
         ConferenceParticipant participant2 = new ConferenceParticipant(
                 Uri.parse("tel:6505551213"),
                 "A",
@@ -105,8 +153,8 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1));
         assertEquals(0, imsConference.getNumberOfParticipants());
-        verify(mMockTelephonyConnectionServiceProxy, times(2)).removeConnection(
-                any(Connection.class));
+        // Ensure the call direction is set correctly during emulation
+        assertEquals(Call.Details.DIRECTION_OUTGOING, imsConference.getCallDirection());
         reset(mMockTelephonyConnectionServiceProxy);
 
         // Back to 2!
@@ -129,7 +177,8 @@
 
         ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
                 mMockTelephonyConnectionServiceProxy, mConferenceHost,
-                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
 
         // Start off with 3 participants.
         ConferenceParticipant participant1 = new ConferenceParticipant(
@@ -169,8 +218,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 +225,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));
@@ -196,7 +241,8 @@
 
         ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
                 mMockTelephonyConnectionServiceProxy, mConferenceHost,
-                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
 
         // Start off with 3 participants.
         ConferenceParticipant participant1 = new ConferenceParticipant(
@@ -230,8 +276,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));
@@ -255,7 +299,8 @@
 
         ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
                 mMockTelephonyConnectionServiceProxy, mConferenceHost,
-                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
 
         // Setup the initial conference state with 2 participants.
         ConferenceParticipant participant1 = new ConferenceParticipant(
@@ -288,8 +333,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.
@@ -315,17 +358,18 @@
 
         ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
                 mMockTelephonyConnectionServiceProxy, mConferenceHost,
-                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
 
         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 +394,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 +404,62 @@
     }
 
     /**
+     * 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 */,
+                new ImsConference.CarrierConfiguration.Builder().build());
+
+        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));
+        assertFalse(imsConference.isMultiparty());
+    }
+
+    /**
+     * Verify that the single party emulate correctly when the conference starts with a single
+     * party as part of the initial setup.  This mimics how an ImsCall can get CEP data prior to the
+     * ImsConference being created.
+     */
+    @Test
+    @SmallTest
+    public void testSinglePartyEmulationWithSinglePartyAtCreation() {
+        when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
+                .thenReturn(false);
+
+        ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
+                mMockTelephonyConnectionServiceProxy, mConferenceHost,
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
+
+        ConferenceParticipant participant1 = new ConferenceParticipant(
+                Uri.parse("tel:6505551214"),
+                "A",
+                Uri.parse("sip:6505551214@testims.com"),
+                Connection.STATE_ACTIVE,
+                Call.Details.DIRECTION_INCOMING);
+        List<ConferenceParticipant> cps = Arrays.asList(participant1);
+        when(mConferenceHost.mMockRadioConnection.getConferenceParticipants())
+                .thenReturn(cps);
+        imsConference.updateConferenceParticipantsAfterCreation();
+
+        assertFalse(imsConference.isMultiparty());
+    }
+
+    /**
      * Verify that we do not use single party emulation when a sim call manager is in use.
      */
     @Test
@@ -373,7 +471,8 @@
 
         ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
                 mMockTelephonyConnectionServiceProxy, mConferenceHost,
-                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
 
         ConferenceParticipant participant1 = new ConferenceParticipant(
                 Uri.parse("tel:6505551212"),
@@ -404,13 +503,14 @@
 
     @Test
     @SmallTest
-    public void testNormalConference() {
+    public void testNormalConference() throws Exception {
         when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
                 .thenReturn(false);
 
         ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
                 mMockTelephonyConnectionServiceProxy, mConferenceHost,
-                null /* phoneAccountHandle */, () -> false /* featureFlagProxy */);
+                null /* phoneAccountHandle */, () -> false /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
 
         ConferenceParticipant participant1 = new ConferenceParticipant(
                 Uri.parse("tel:6505551212"),
@@ -432,5 +532,45 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1));
         assertEquals(1, imsConference.getNumberOfParticipants());
+
+        // Drop to 0 participants; should not hangup the conf now
+        imsConference.handleConferenceParticipantsUpdate(mConferenceHost, Collections.emptyList());
+        assertEquals(0, imsConference.getNumberOfParticipants());
+        verify(mConferenceHost.mMockCall, never()).hangup();
+    }
+
+    @Test
+    @SmallTest
+    public void testLocalDisconnectOnEmptyConference() throws Exception {
+        when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
+                .thenReturn(false);
+
+        ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
+                mMockTelephonyConnectionServiceProxy, mConferenceHost,
+                null /* phoneAccountHandle */, () -> false /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder()
+                        .setShouldLocalDisconnectEmptyConference(true)
+                        .build());
+
+        ConferenceParticipant participant1 = new ConferenceParticipant(
+                Uri.parse("tel:6505551212"),
+                "A",
+                Uri.parse("sip:6505551212@testims.com"),
+                Connection.STATE_ACTIVE,
+                Call.Details.DIRECTION_INCOMING);
+        ConferenceParticipant participant2 = new ConferenceParticipant(
+                Uri.parse("tel:6505551213"),
+                "A",
+                Uri.parse("sip:6505551213@testims.com"),
+                Connection.STATE_ACTIVE,
+                Call.Details.DIRECTION_INCOMING);
+        imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
+                Arrays.asList(participant1, participant2));
+        assertEquals(2, imsConference.getNumberOfParticipants());
+
+        // Drop to 0 participants; should have a hangup request.
+        imsConference.handleConferenceParticipantsUpdate(mConferenceHost, Collections.emptyList());
+        assertEquals(0, imsConference.getNumberOfParticipants());
+        verify(mConferenceHost.mMockCall).hangup();
     }
 }
diff --git a/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java b/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java
index 8b46bf0..d55a2fa 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
@@ -67,9 +69,11 @@
     @Override
     @After
     public void tearDown() throws Exception {
+        mListener.setTimeBetweenRetriesMillis(5000);
+        mListener.setMaxNumRetries(5);
+        mListener.getHandler().removeCallbacksAndMessages(null);
         // Wait for the queue to clear...
         waitForHandlerAction(mListener.getHandler(), TIMEOUT_MS /*ms timeout*/);
-        mListener.getHandler().removeCallbacksAndMessages(null);
         mListener = null;
         super.tearDown();
     }
@@ -80,13 +84,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 +107,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 +134,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 +163,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..09cec17 100644
--- a/tests/src/com/android/services/telephony/TestTelephonyConnection.java
+++ b/tests/src/com/android/services/telephony/TestTelephonyConnection.java
@@ -24,14 +24,17 @@
 
 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;
 
 import com.android.internal.telephony.Call;
+import com.android.internal.telephony.CallStateException;
 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 +60,9 @@
     @Mock
     Resources mMockResources;
 
+    @Mock
+    EmergencyNumberTracker mEmergencyNumberTracker;
+
     private Phone mMockPhone;
     private int mNotifyPhoneAccountChangedCount = 0;
     private List<String> mLastConnectionEvents = new ArrayList<>();
@@ -67,20 +73,30 @@
         return mMockRadioConnection;
     }
 
+    @Override
+    protected Call getCall() {
+        return mMockCall;
+    }
+
     public TestTelephonyConnection() {
-        super(null, null, false);
+        super(null, null, android.telecom.Call.Details.DIRECTION_INCOMING);
         MockitoAnnotations.initMocks(this);
 
         mMockPhone = mock(Phone.class);
         mMockContext = mock(Context.class);
-        mOriginalConnection = mock(Connection.class);
+        mOriginalConnection = mMockRadioConnection;
         // 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);
@@ -90,6 +106,11 @@
         when(mMockPhone.getPhoneType()).thenReturn(PhoneConstants.PHONE_TYPE_IMS);
         when(mMockCall.getState()).thenReturn(Call.State.ACTIVE);
         when(mMockCall.getPhone()).thenReturn(mMockPhone);
+        try {
+            doNothing().when(mMockCall).hangup();
+        } catch (CallStateException e) {
+            e.printStackTrace();
+        }
     }
 
     @Override
@@ -134,6 +155,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;
+    }
+}
